5.4 Examples Using the for Statement

The 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.

  1. Vary the control variable from 1 to 100 in increments of 1.

    
    for (unsigned int i{1}; i <= 100; i++)
    
  2. Vary the control variable from 100 down to 1 in decrements of 1.

    
    for (unsigned int i{100}; i >= 1; i--)
    
  3. Vary the control variable from 7 to 77 in increments of 7.

    
    for (unsigned int i{7}; i <= 77; i += 7)
    
  4. Vary the control variable from 20 down to 2 in decrements of 2.

    
    for (unsigned int i{20}; i >= 2; i -= 2)
    
  5. Vary the control variable over the values 2, 5, 8, 11, 14, 17, 20.

    
    for (unsigned int i{2}; i <= 20; i += 3)
    
  6. 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)
    

Common Programming Error 5.4

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.

 

Common Programming Error 5.5

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).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset