Such loops may iterate only zero, one, or infinite number of times.
If the infinite number of times case is unreachable, such a loop can be replaced with an if
statement.
Otherwise, there's a possibility that the program can get stuck.
Example:
public void foo(String baseName, String names) {
int suffix = 1;
String name = baseName;
while (names.contains(name)) {
// error: suffix is not updated making loop body idempotent
name = baseName + suffix;
}
}
New in 2018.1