Executes a block of statements repeatedly until the value of a logical expression is false. Statement format: DO [s][,] WHILE (e) s Is the label of an executable statement which follows the DO statement in the same program unit. The label designates the last statement of the DO loop. If omitted, an END DO statement is required. e Is a logical expression. You can reference and modify the variable elements of the expression within the DO loop. You can transfer control out of a DO WHILE loop but not into a loop from elsewhere in the program. The DO WHILE statement tests the logical expression at the beginning of each execution of the loop, including the first. If the value of the expression is true, the statements in the body of the loop are executed; if the expression is false, control transfers to the statement following the loop. If no label appears in the DO WHILE statement, the DO WHILE loop must be terminated with an END DO statement.