While...End While-Anweisung (Visual Basic)

Führt eine Reihe von Anweisungen aus, solange eine bestimmte Bedingung True ist.

Syntax

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

Bestandteile

Begriff Definition
condition Erforderlich. Boolean-Ausdruck. Wenn condition ist Nothing, behandelt Visual Basic es als False.
statements Optional. Eine oder mehrere Anweisungen folgen, Whiledie jedes Mal condition ausgeführt werden True.
Continue While Optional. Übergibt die Kontrolle an die nächste Iteration des While-Blocks.
Exit While Optional. Überträgt die Steuerung aus dem While-Block.
End While Erforderlich. Beendet die Definition des While-Blocks.

Bemerkungen

Verwenden Sie eine While...End While-Struktur, wenn Sie einen Satz von Anweisungen unbegrenzt oft wiederholen möchten, solange eine Bedingung erhalten bleibt True. Wenn Sie mehr Flexibilität wünschen, wo Sie die Bedingung testen oder auf welches Ergebnis Sie sie testen, sollten Sie die Do... Loop-Anweisung. Wenn Sie die Anweisungen mehrmals wiederholen möchten, ... Next Statement ist in der Regel eine bessere Wahl.

Hinweis

Die While Schlüsselwort (keyword) wird auch in der Do... Loop-Anweisung, die Skip While-Klausel und die Take While-Klausel.

Wenn condition ist True, wird die statements gesamte Ausführung ausgeführt, bis die End While-Anweisung gefunden wird. Control kehrt dann zur While-Anweisung zurück und condition wird erneut aktiviert. Wenn condition noch Truevorhanden ist, wird der Prozess wiederholt. Wenn es False ist, wird die Kontrolle an die Anweisung übergeben, die auf die End While-Anweisung folgt.

Die While -Anweisung überprüft immer die Bedingung, bevor sie die Schleife startet. Die Schleifen werden fortgesetzt, während die Bedingung bleibt True. Wenn conditionFalse ist wenn Sie die Schleife zum ersten Mal betreten, wird sie nicht einmal ausgeführt.

Die condition ergibt sich normalerweise aus einem Vergleich von zwei Werten, aber es kann sich um einen beliebigen Ausdruck handeln, der zu einem booleschen Datentypwert (True oder False) ausgewertet wird. Dieser Ausdruck kann einen Wert eines anderen Datentyps enthalten, z. B. einen numerischen Typ, der in Booleankonvertiert wurde.

Sie können Schleifen schachteln While , indem Sie eine Schleife in einer anderen platzieren. Sie können auch verschiedene Arten von Steuerungsstrukturen ineinander verschachteln. Weitere Informationen finden Sie unter Geschachtelte Steuerelementstrukturen.

While beenden

Die Exit While-Anweisung kann eine weitere Möglichkeit zum Beenden einer While Schleife bieten. Exit While Überträgt die Steuerung sofort an die Anweisung, die auf die End While Anweisung folgt.

Sie verwenden Exit While in der Regel, nachdem eine Bedingung ausgewertet wurde (z. B. in einer If...Then...Else-Struktur). Sie können eine Schleife beenden, wenn Sie eine Bedingung erkennen, die die Fortsetzung der Iterierung unnötig oder unmöglich macht, z. B. einen fehlerhaften Wert oder eine Beendigungsanforderung. Sie können verwenden Exit While, wenn Sie auf eine Bedingung testen, die eine Endlosschleife verursachen könnte. Dies ist eine Schleife, die eine extrem große oder sogar unendliche Anzahl von Malen ausführen kann. Sie können dann verwenden Exit While , um die Schleife zu escapen.

Sie können eine beliebige Anzahl von Exit While Anweisungen an einer beliebigen Stelle in der While Schleife platzieren.

Bei Verwendung in geschachtelten While Schleifen Exit While überträgt die Steuerung aus der innersten Schleife in die nächst höhere Ebene der Schachtelung.

Die Continue While-Anweisung übergibt die Kontrolle sofort an die nächste Iteration der Schleife. Weitere Informationen finden Sie unter Anweisung fortsetzen.

Beispiel 1

Im folgenden Beispiel werden die Anweisungen in der Schleife weiter ausgeführt, bis die index-Variable größer als 10 ist.

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Beispiel 2

Das folgende Beispiel veranschaulicht die Verwendung der Anweisungen Continue While und Exit While.

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 And index <= 8 Then
        Continue While
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit While
    End If
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

Beispiel 3

Im folgenden Beispiel werden alle Zeilen in einer Textdatei gelesen. Die OpenText-Methode öffnet die Datei und gibt eine StreamReader zurück, die die Zeichen liest. In der While-Bedingung bestimmt die Peek-Methode von StreamReader, ob die Datei zusätzliche Zeichen enthält.

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If
End Sub

Siehe auch