Do...Loop-Anweisung

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