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 the loops that decrement the control variable.
Vary the control variable from 1
to 100
in increments of 1
.
for (unsigned int i{1}; i <= 100; i++)
Vary the control variable from 100
down to 1
in decrements of 1
.
for (unsigned int i{100}; i >= 1; i--)
Vary the control variable from 7
to 77
in increments of 7
.
for (unsigned int i{7}; i <= 77; i += 7)
Vary the control variable from 20
down to 2
in decrements of 2
.
for (unsigned int i{20}; i >= 2; i -= 2)
Vary the control variable over the values 2
, 5
, 8
, 11
, 14
, 17
, 20
.
for (unsigned int i{2}; i <= 20; i += 3)
Vary the control variable over the values 99
, 88
, 77
, 66
, 55
, 44
, 33
, 22
, 11
, 0
. We use int
rather than unsigned int
here because the condition does not become false until i
’s value is -11
, so the control variable must be able to represent both positive and negative values.
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 (!=
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 (unsigned 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).