### DO...LOOP

Description

A control structure that is a general-purpose iteration statement used to execute a block of statements while or until a condition is true.

DO... LOOP has four formats:

• DO WHILE

Executes a block of statements while the specified condition is true. The loop ends when the condition becomes false. If the condition is false on the first evaluation, the statement block does not execute.

• LOOP UNTIL

Executes a block of statements at least once and continues until the specified condition is true.

• LOOP WHILE

Executes a block of statements at least once and continues while the specified condition is true. The loop ends when the condition becomes false.

In all four formats of the DO...LOOP control structure, DO marks the beginning of the statement block that you want to repeat. The LOOP statement marks the end.

You can nest DO...LOOP control structures.

Syntax

```DO UNTIL condition
statementblock
LOOP
DO WHILE condition
statementblock
LOOP
DO
statementblock
LOOP UNTIL condition
DO
statementblock
LOOP WHILE condition```

Parameter

Description

condition

The condition you are testing

statementblock

The block of statements you want to repeat

Usage

Use DO WHILE or DO UNTIL when you want to execute a block of statements only if a condition is true (for WHILE) or false (for UNTIL). DO WHILE and DO UNTIL test the condition before executing the block of statements.

Use LOOP WHILE or LOOP UNTIL when you want to execute a block of statements at least once. LOOP WHILE and LOOP UNTIL test the condition after the block of statements has been executed.

Examples

DO UNTIL

The following DO UNTIL repeatedly executes the Beep function until A is greater than 15:

```integer A = 1, B = 1
DO UNTIL A > 15
Beep(A)
A = (A + 1) * B
LOOP```

DO WHILE

The following DO WHILE repeatedly executes the Beep function only while A is less than or equal to 15:

```integer A = 1, B = 1
DO WHILE A <= 15
Beep(A)
A = (A + 1) * B
LOOP```

LOOP UNTIL

The following LOOP UNTIL executes the Beep function and then continues to execute the function until A is greater than 1:

```integer A = 1, B = 1
DO
Beep(A)
A = (A + 1) * B
LOOP UNTIL A > 15```

LOOP WHILE

The following LOOP WHILE repeatedly executes the Beep function while A is less than or equal to 15:

```integer A = 1, B = 1
DO
Beep(A)
A = (A + 1) * B
LOOP WHILE A <= 15```