Repete um bloco de instruções enquanto uma condição é Verdadeira ou até que ela se torne Verdadeira.
Sintaxe
Do {While | Until} condition
[statements]
[Exit Do]
[statements]
Loop
'or use below syntax
Do
[statements]
[Exit Do]
[statements]
Loop {While | Until} condition
Argumentos:
Condição: Expressão numérica ou de string que é Verdadeira ou Falsa. Se a condição for Nula, será tratada como Falsa.
Instruções: Uma ou mais instruções que são repetidas enquanto uma condição é Verdadeira ou até que ela se torne Verdadeira.
Comentários
A instrução Exit Do só pode ser usada em uma estrutura de controle Do...Loop para fornecer uma maneira alternativa de sair dessa estrutura. É possível incluir qualquer número de instruções Exit Do em qualquer lugar da instrução Do...Loop. Geralmente usada com a avaliação de alguma condição (por exemplo, If...Then), a instrução Exit Do transfere o controle para a instrução imediatamente após o Loop.
Quando usada dentro de instruções Do...Loop aninhadas, a instrução Exit Do transfere o controle para o loop que está aninhado um nível acima do loop em que ocorre.
Os exemplos a seguir ilustram o uso da instrução Do...Loop:
Exemplo 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
Exemplo 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.
Exemplo 3:
Dim index
index = 0
Dim items(5)
items(0) = "Item1"
items(1) = "Item2"
Do While index < UBound(items)
index = index + 1
Loop
Exemplo 4:
Dim count
count = 0
Do
'Operations based on requirement
count = count + 1
Loop While count < 1 ' Will exit after one iteration.
Exemplo 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
Exemplo 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