Do...Loop Statement |
No
Do [{While | Until} condition] [statements] [Exit Do] [statements] Loop
or:
Do [statements] [Exit Do] [statements] Loop [{While | Until} condition]
condition
Use: Optional
Data Type: Boolean expression
An expression that evaluates to True or False.
statements
Use: Optional
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.
Do...Loop on its own repeatedly executes the code that is contained within its boundaries indefinitely. 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 Do 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'd need to execute the loop at least once. To do this, place the Until or 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 continually execute the loop 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's 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