Do...Loop Statement |
Do [{While Until} condition ] [ statements ] [Exit Do] [ statements ] Loop
or:
Do [ statements ] [Exit Do] [ statements ] Loop [{While Until} condition ]
An expression that evaluates to True or False
Program statements that are repeatedly executed while, or until, condition is True
Repeatedly executes a block of code while or until a condition becomes True
On its own, Do...Loop infinitely executes the code that is contained within its boundaries. You therefore need to specify within the code under what conditions the loop is to stop repeating. In addition, if the loop executes more than once, the variable controlling loop execution must be modified inside of the loop. For example:
Do intCtr = intCtr + 1 ' Modify loop control variable MsgBox("Iteration " & intCtr & " of the Do loop...") ' Compare to upper limit If intCtr = 10 Then Exit Sub Loop
Failure to do this results in the creation of an endless loop.
Adding the Until keyword after Do instructs your program to Do something Until the condition is True . Its syntax is:
Do Until condition 'code to execute Loop
If condition is True before your code gets to the Do statement, the code within the Do...Loop is ignored.
Adding the While keyword after Do repeats the code while a particular condition is True . When the condition becomes False , the loop is automatically exited. The syntax of the Do While statement is:
Do While condition 'code to execute Loop
Again, the code within the Do...Loop construct is ignored if condition is False when the program arrives at the loop.
In some cases, you may need to execute the loop at least once. You might, for example, evaluate the values held within an array and terminate the loop if a particular value is found. In that case, you would need to execute the loop at least once. To accomplish this, you can place the Until or the While keyword along with the condition after the Loop statement. Do...Loop Until always executes the code in the loop at least once, and continues to loop until the condition is True. Likewise, Do...Loop While always executes the code at least once, and continues to loop while the condition is True. The syntax of these two statements is as follows :
Do 'code to execute Loop Until condition Do 'code to execute Loop While condition
A Null condition is treated as False .
Your code can exit the loop at any point by executing the Exit Do statement.
You'll also encounter situations in which you intend to execute the loop continually while or until a condition is True , except in a particular case. This type of exception is handled using the Exit Do statement. You can place as many Exit Do statements within a Do...Loop structure as you require. As with any exit from a Do...Loop , whether it is exceptional or normal, the program continues execution on the line directly following the Loop statement. The following code fragment illustrates the use of Exit Do :
Do Until condition1 'code to execute If condition2 Then Exit Do End if ' more code to execute - only if condition2 is false Loop
While...End While Statement