The iteration scheme can take one of two forms given by the following rule:
The first form contains a boolean expression that controls the number of iterations that are performed. Before each iteration (including the first) the condition is evaluated. If it is true, then the statement list is executed, and if it is false, the loop statement is complete.
The second form contains a discrete range that specifies how many iterations to perform. The simple name is the name of a constant that is implicitly declared within the scope of the loop statement. The constant is initially equal to the left-most value in the discrete range. At the end of each iteration, the constant is set to the next value in the discrete range. One iteration is performed for each value in the discrete range. If the discrete range is empty, then the statement list is executed zero times.