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, While die 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 True
vorhanden 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 condition
False
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 Boolean
konvertiert 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