(0) exportieren Drucken
Alle erweitern

Do...Loop-Anweisung (Visual Basic)

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

While

Erforderlich, sofern nicht Until verwendet wird. Die Schleife wird wiederholt, bis condition False ist.

Until

Erforderlich, sofern nicht While verwendet wird. Die Schleife wird wiederholt, bis condition True ist.

condition

Optional. Boolean-Ausdruck. Wenn condition Nothing ist, behandelt Visual Basic den Ausdruck als False.

statements

Optional. Eine oder mehrere Anweisungen, die wiederholt werden, solange condition True 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.

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

NoteHinweis

Drücken Sie ESC oder STRG+UNTBR, um eine Endlosschleife zu beenden.

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.

    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.

Anzeigen:
© 2014 Microsoft