Repite un bloque de sentencias mientras una condición es True o hasta que una condición se convierte en True.
Sintaxis
Do {While | Until} condition
[statements]
[Exit Do]
[statements]
Loop
'or use below syntax
Do
[statements]
[Exit Do]
[statements]
Loop {While | Until} condition
Argumentos:
Condition: expresión numérica o de cadena que es True o False. Si la condición es nula, esta se trata como False.
Statements: una o más sentencias que se repiten mientras la condición es True o hasta que lo sea.
Observaciones
Exit Do solo se puede utilizar dentro de una estructura de control Do...Loop para proporcionar una forma alternativa de salir de Do...Loop. Se puede colocar cualquier cantidad de sentencias Exit Do en cualquier lugar de Do...Loop. Utilizado normalmente con la evaluación de una condición (por ejemplo, If...Then), Exit Do transfiere el control a la sentencia inmediatamente posterior al bucle.
Cuando se utiliza en sentencias Do...Loop anidadas, Exit Do transfiere el control al bucle que está anidado un nivel por encima del bucle donde se produce.
En los siguientes ejemplos se muestra el uso de la sentencia Do...Loop:
Ejemplo 1:
Dim flag , MyNum
flag = true 'initialises a variable
Do Until flag= false
MyNum = Int (6 * Rnd + 1) ' Generate a random integer between 1 and 6.
If MyNum = 4 Then
flag=false
End If
Loop
Ejemplo 2:
Dim Check, Counter
Check = True 'Initialize variables.
Counter = 0 ' Initialize variables.
Do ' Outer loop.
Do While Counter < 20 ' Inner loop.
Counter = Counter + 1 ' Increment Counter.
If Counter = 10 Then ' If condition is True...
Check = False ' set value of flag to False.
Exit Do ' Exit inner loop.
End If
Loop
Loop Until Check = False ' Exit outer loop immediately.
Ejemplo 3:
Dim index
index = 0
Dim items(5)
items(0) = "Item1"
items(1) = "Item2"
Do While index < UBound(items)
index = index + 1
Loop
Ejemplo 4:
Dim count
count = 0
Do
'Operations based on requirement
count = count + 1
Loop While count < 1 ' Will exit after one iteration.
Ejemplo 5:
Dim Val
Val =2
Do
If Val=5 Then Exit Do
Val= Val+1
'Operations based on requirement using value of Val
Loop While Val<10
Ejemplo 6:
Dim Row, Col
Row= 1
Col =1
Do
Col =1
Do
'Operations based on requirement using Row and Col
Col = Col +1
Loop While Col<4
Row = Row +1
Loop While Row<4