The range of a DO construct includes all the statements and constructs that follow the DO statement, up to and including the terminal statement. If the DO construct contains another construct, the inner (nested) construct must be entirely contained within the DO construct.
Execution of a DO construct differs depending on how the loop is controlled, as follows:
do-var = expr1, expr2 [, expr3]
.
An iteration count specifies the number of times
the DO range is executed. (For more information on iteration loop
control, see Section 7.5.2.1.)