DO UNTIL Statement

Executes statements in a DO loop repetitively until a condition is true.
Valid in: DATA step
Category: Control
Type: Executable

Syntax

DO UNTIL (expression);
...more SAS statements...
END;

Arguments

(expression)
is any SAS expression, enclosed in parentheses. You must specify at least one expression.

Details

The expression is evaluated at the bottom of the loop after the statements in the DO loop have been executed. If the expression is true, the DO loop does not iterate again.
Note: The DO loop always iterates at least once.

Comparisons

There are three other forms of the DO statement:
  • The DO statement, the simplest form of DO-group processing, designates a group of statements to be executed as a unit, usually as a part of IF-THEN/ELSE statements.
  • The iterative DO statement executes statements between DO and END statements repetitively based on the value of an index variable.
  • The DO WHILE statement executes statements in a DO loop repetitively while a condition is true, checking the condition before each iteration of the DO loop. The DO UNTIL statement evaluates the condition at the bottom of the loop; the DO WHILE statement evaluates the condition at the top of the loop.
    Note: The statements in a DO UNTIL loop always execute at least one time, whereas the statements in a DO WHILE loop do not iterate even once if the condition is false.

Example: Using a DO UNTIL Statement to Repeat a Loop

These statements repeat the loop until N is greater than or equal to 5. The expression N>=5 is evaluated at the bottom of the loop. There are five iterations in all (0, 1, 2, 3, 4).
n=0;
   do until(n>=5);
      put n=;
      n+1;
   end;