The counter of a for loop should be updated in the loop’s increment clause. The purpose of a for loop is to iterate over
a range using a counter variable. It should not be used for other purposes, and alternative loops should be used in those cases.
If the counter is not updated, the loop will be infinite with a constant counter variable. If this is intentional, use a while or
do while loop instead of a for loop.
If the counter variable is updated within the loop’s body, try to move it to the increment clause. If this is impossible due to certain conditions,
replace the for loop with a while or do while loop.
Move the counter variable update to the loop’s increment clause.
for (int i = 0; i < 10; ) { // Noncompliant, i not updated in increment clause
// ...
i++;
}
int sum = 0
for (int i = 0; i < 10; sum++) { // Noncompliant, i not updated in increment clause
// ...
i++;
}
for (i = 0; i < 10; i++) { // Compliant
// ...
}
int sum = 0
for (int i = 0; i < 10; i++) { // Compliant
// ...
sum++;
}
If this is impossible and the counter variable must be updated in the loop’s body, use a while or do while
loop instead.
for (int sum = 0; sum < 10) { // Noncompliant, sum not updated in increment clause
// ...
if (condition) sum++;
// ...
}
int sum = 0;
while (sum < 10) { // Compliant
// ...
if (condition) sum++;
// ...
}