Répète un bloc d'instructions tant qu'une condition est True ou jusqu'à ce qu'une condition devienne True.
Syntaxe
Do {While | Until} condition
[statements]
[Exit Do]
[statements]
Loop
'or use below syntax
Do
[statements]
[Exit Do]
[statements]
Loop {While | Until} condition
Arguments :
condition : expression numérique ou de chaîne qui est True ou False. Si l'argument condition est NULL, il est considéré comme False.
statements : instructions qui sont répétées tant que l'argument condition est True ou jusqu'à ce qu'il le devienne.
Remarques
L'instruction Exit Do ne peut être utilisée que dans une structure de contrôle Do...Loop afin de fournir une autre méthode pour sortir de Do...Loop. Vous pouvez placer un nombre illimité d'instructions Exit Do n'importe où dans la structure Do...Loop. Souvent utilisée avec l'évaluation d'une condition (par exemple, If...Then), l'instruction Exit Do transfère le contrôle à l'instruction qui suit immédiatement la boucle.
Lorsqu'elle est utilisée dans des instructions Do...Loop imbriquées, l'instruction Exit Do transfère le contrôle à la boucle qui est imbriquée un niveau au-dessus de celle où elle se trouve.
Les exemples suivants illustrent l'utilisation de l'instruction Do...Loop :
Exemple 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
Exemple 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.
Exemple 3 :
Dim index
index = 0
Dim items(5)
items(0) = "Item1"
items(1) = "Item2"
Do While index < UBound(items)
index = index + 1
Loop
Exemple 4 :
Dim count
count = 0
Do
'Operations based on requirement
count = count + 1
Loop While count < 1 ' Will exit after one iteration.
Exemple 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
Exemple 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