Do...Loop-Anweisung (Visual Basic)
Aktualisiert: November 2007
Wiederholt einen Block mit Anweisungen, solange eine Boolean-Bedingung True ist bzw. bis die Bedingung True wird.
Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop
-or-
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } condition
Bestandteile
While
Erforderlich, sofern nicht Until verwendet wird. Die Schleife wird wiederholt, bis conditionFalse ist.Until
Erforderlich, sofern nicht While verwendet wird. Die Schleife wird wiederholt, bis conditionTrue ist.condition
Optional. Boolean-Ausdruck. Wenn conditionNothing ist, behandelt Visual Basic den Ausdruck als False.statements
Optional. Eine oder mehrere Anweisungen, die wiederholt werden, solange conditionTrue ist bzw. bis die Bedingung True wird.Exit Do
Optional. Überträgt die Steuerung aus der Do-Schleife.Loop
Erforderlich. Beendet die Definition der Do-Schleife.
Hinweise
Verwenden Sie eine Do...Loop-Struktur, wenn eine Gruppe von Anweisungen wiederholt werden soll, bis eine Bedingung zutrifft. Wenn die Anweisungen mit einer festgelegten Anzahl von Wiederholungen ausgeführt werden sollen, ist die For...Next Statement i. d. R. vorzuziehen.
Die Do...Loop-Struktur ermöglicht mehr Flexibilität als die While...End While-Anweisung (Visual Basic), weil Sie festlegen können, ob die Schleife beendet werden soll, wenn condition nicht mehr True ist oder wenn die Bedingung das erste Mal True ist. Sie ermöglicht es Ihnen auch, condition am Anfang oder am Ende der Schleife zu testen.
Regeln
Art der Bedingung. Die Bedingung ist normalerweise das Ergebnis des Vergleichs zweier Werte. Es kann sich jedoch um einen beliebigen Ausdruck handeln, der einen Wert mit Boolean-Datentyp (Visual Basic) (True oder False) ergibt. Dazu gehören Werte anderer Datentypen, wie z. B. numerische Typen, die in Boolean umgewandelt wurden.
Testen der Bedingung. Sie können condition nur einmal testen, entweder am Anfang oder am Ende der Schleife. Sie können condition entweder mit While oder mit Until angeben, jedoch nicht mit beiden Bedingungen.
Anzahl von Iterationen. Wenn Sie condition am Anfang der Schleife testen (in der Do-Anweisung), wird die Schleife möglicherweise niemals ausgeführt. Wenn Sie die Bedingung am Ende der Schleife testen (in der Loop-Anweisung), wird die Schleife immer mindestens einmal ausgeführt.
Schachteln von Schleifen. Sie können Do-Schleifen schachteln, indem Sie eine Schleife in eine andere einfügen. Sie können auch unterschiedliche Arten von Steuerungsstrukturen in anderen Steuerungsstrukturen schachteln. Weitere Informationen finden Sie unter Geschachtelte Steuerungsstrukturen.
Übertragen der Steuerung aus der Schleife. Die Exit-Anweisung (Visual Basic) überträgt die Steuerung direkt an die erste Anweisung nach der Loop-Anweisung. Möglicherweise möchten Sie eine Schleife beenden, wenn Sie eine Bedingung feststellen, die das Fortsetzen des Durchlaufs unnötig oder unmöglich macht, z. B. ein fehlerhafter Wert oder eine Anforderung zum Beenden. Sie können eine beliebige Anzahl von Exit Do-Anweisungen an jeder Stelle der Do-Schleife einfügen. Exit Do wird häufig nach der Überprüfung einer Bedingung verwendet, z. B. in einer If...Then...Else-Struktur.
Endlosschleifen
Die Verwendung von Exit Do ist sinnvoll, um eine Bedingung zu testen, die eine Endlosschleife verursachen kann. Hierbei handelt es sich um eine Schleife, die mit einer extrem großen oder unendlichen Anzahl von Wiederholungen ausgeführt werden kann. Wenn Sie eine solche Bedingung feststellen, können Sie Exit Do verwenden, um die Schleife zu verlassen. Andernfalls wird die Schleife weiterhin ausgeführt.
Im folgenden Beispiel ist number ein Wert zugeordnet, der veranlassen kann, dass die Schleife mehr als 2 ^ 31-mal ausgeführt wird. Die If-Anweisung überprüft diese Bedingung und beendet sie, falls sie vorhanden ist, um die endlose Ausführung der Schleife zu verhindern.
Sub exitDoExample()
Dim counter As Integer = 0
Dim number As Integer = 8
Do Until number = 10
If number <= 0 Then Exit Do
number -= 1
counter += 1
Loop
MsgBox("The loop ran " & counter & " times.")
End Sub
Hinweis: |
---|
Drücken Sie ESC oder STRG+UNTBR, um eine Endlosschleife zu beenden. |
Beispiel
Im folgenden Beispiel werden geschachtelte Do...Loop-Strukturen, die Verwendung von While und Until sowie das Testen der Bedingung am Anfang (Do-Anweisung) und Ende (Loop-Anweisung) der Schleife veranschaulicht.
Sub DoExample()
Dim check As Boolean = True
Dim counter As Integer = 0
Do
Do While counter < 20
counter += 1
If counter = 10 Then
check = False
Exit Do
End If
Loop
Loop Until check = False
End Sub
Im vorherigen Beispiel führt die innere Do...Loop-Struktur 10 Durchläufe durch, der Wert des Flags wird auf False festgelegt, und die Ausführung der Schleife wird mit der Exit Do-Anweisung vorzeitig beendet. Die äußere Schleife wird sofort nach dem Überprüfen des Flags beendet.
Siehe auch
Aufgaben
Gewusst wie: Verbessern der Leistung einer Schleife
Konzepte
Geschachtelte Steuerungsstrukturen
Referenz
For...Next-Anweisung (Visual Basic)