for
StatementThe following examples show techniques for varying the control variable in a for
statement. In each case, we write only the appropriate for
header. Note the change in the relational operator for loops that decrement the control variable.
Vary the control variable from 1
to 100
in increments of 1
.
for (int i = 1; i <= 100; ++i)
Vary the control variable from 100
to 1
in decrements of 1
.
for (int i = 100; i >= 1; --i)
Vary the control variable from 7
to 77
in increments of 7
.
for (int i = 7; i <= 77; i += 7)
Vary the control variable from 20
to 2
in decrements of 2
.
for (int i = 20; i >= 2; i -= 2)
Vary the control variable over the sequence 2
, 5
, 8
, 11
, 14
, 17
, 20
.
for (int i = 2; i <= 20; i += 3)
Vary the control variable over the sequence 99
, 88
, 77
, 66
, 55
, 44
, 33
, 22
, 11
, 0
.
for (int i = 99; i >= 0; i -= 11)
Using an incorrect relational operator in the loop-continuation condition of a loop that counts downward (e.g., using i <= 1
instead of i >= 1
in a loop counting down to 1) is usually a logic error.
Do not use equality operators ( Common Programming Error 6.4
!=
or ==
) in a loop-continuation condition if the loop’s control variable increments or decrements by more than 1. For example, consider the for
statement header for (int counter = 1; counter != 10; counter += 2)
. The loop-continuation test counter != 10
never becomes false (resulting in an infinite loop) because counter
increments by 2 after each iteration (and never becomes 10).