Wiederholt einen Anweisungsblock, während eine Bedingung "True" ist oder bis eine Bedingung "True" wird.
Syntax
Do {While | Until} condition
[statements]
[Exit Do]
[statements]
Loop
'or use below syntax
Do
[statements]
[Exit Do]
[statements]
Loop {While | Until} condition
Argumente:
Condition: Numerischer oder Zeichenfolgeausdruck, der "True" oder "False" ist. Wenn "condition" Null ist, wird die Bedingung als "False" behandelt.
Statements: Eine oder mehrere Anweisungen, die wiederholt werden, während oder bis die Bedingung "True" ist.
Anmerkungen
"Exit Do" kann nur in einer Do...Loop-Kontrollstruktur verwendet werden, um eine alternative Möglichkeit zum Beenden einer Do...Loop-Anweisung bereitzustellen. Beliebig viele Exit Do-Anweisungen können überall in der Do...Loop-Anweisung platziert werden. Wird häufig bei der Auswertung einer Bedingung (z.B. If...Then) verwendet. "Exit Do" übergibt die Kontrolle an die Anweisung, die direkt auf "Loop" folgt.
Bei Verwendung in verschachtelten Do...Loop-Anweisungen übergibt "Exit Do" die Kontrolle an die Schleife, die eine Ebene über der Schleife verschachtelt ist, in der sie vorkommt.
Die folgenden Beispiele veranschaulichen die Verwendung der Do...Loop-Anweisung:
Beispiel 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
Beispiel 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.
Beispiel 3:
Dim index
index = 0
Dim items(5)
items(0) = "Item1"
items(1) = "Item2"
Do While index < UBound(items)
index = index + 1
Loop
Beispiel 4:
Dim count
count = 0
Do
'Operations based on requirement
count = count + 1
Loop While count < 1 ' Will exit after one iteration.
Beispiel 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
Beispiel 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