Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wiederholt einen Block von Anweisungen, während eine Boolean Bedingung ist True oder bis die Bedingung wird True.
Syntax
Do [ { While | Until } condition ]
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop
' -or-
Do
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop [ { While | Until } condition ]
Bestandteile
| Begriff | Definition |
|---|---|
Do |
Erforderlich. Startet die Definition der Do Schleife. |
While |
Kann nicht angegeben werden, wenn Until sie verwendet wird. Wiederholen Sie die Schleife, bis condition sie lautet False. |
Until |
Kann nicht angegeben werden, wenn While sie verwendet wird. Wiederholen Sie die Schleife, bis condition sie lautet True. |
condition |
Wahlfrei.
Boolean Ausdruck. Wenn condition ja Nothing, behandelt Visual Basic sie als False. |
statements |
Wahlfrei. Mindestens eine Anweisung, die wiederholt wird, während oder bis . conditionTrue |
Continue Do |
Wahlfrei. Überträgt die Steuerung an die nächste Iteration der Do Schleife. |
Exit Do |
Wahlfrei. Überträgt die Steuerung aus dem Do-Schleife. |
Loop |
Erforderlich. Beendet die Definition der Do Schleife. |
Bemerkungen
Verwenden Sie eine Do...Loop Struktur, wenn Sie einen Satz von Anweisungen beliebig oft wiederholen möchten, bis eine Bedingung erfüllt ist. Wenn Sie die Anweisungen mehrmals wiederholen möchten, wird die For... Next Statement ist in der Regel eine bessere Wahl.
Sie können entweder While oder Until zum Angeben conditionvon , aber nicht beides verwenden. Wenn Sie keines der Beiden geben, wird die Schleife fortgesetzt, bis ein Exit Übertragungssteuerelement aus der Schleife besteht.
Sie können nur einmal testen condition , entweder am Anfang oder am Ende der Schleife. Wenn Sie am Anfang der Schleife (in der Do Anweisung) testencondition, wird die Schleife möglicherweise nicht einmal ausgeführt. Wenn Sie am Ende der Schleife (in der Loop Anweisung) testen, wird die Schleife immer mindestens einmal ausgeführt.
Die Bedingung ergibt sich in der Regel aus einem Vergleich von zwei Werten, kann jedoch ein beliebiger Ausdruck sein, der zu einem booleschen Datentypwert (True oder False) ausgewertet wird. Dies schließt Werte anderer Datentypen ein, z. B. numerische Typen, die in konvertiert Booleanwurden.
Sie können Do-Schleifen schachteln, indem Sie eine Schleife in einer anderen platzieren. Sie können auch verschiedene Arten von Kontrollstrukturen miteinander verschachteln. Weitere Informationen finden Sie unter Geschachtelte Kontrollstrukturen.
Hinweis
Die Do...Loop Struktur bietet Ihnen mehr Flexibilität als die While... End While-Anweisung , da Sie entscheiden können, ob die Schleife beendet condition wird True oder wann sie zum ersten Mal wird True. Außerdem können Sie entweder am Anfang oder am Ende der Schleife testen condition .
Exit Do
Die Exit Do-Anweisung kann eine alternative Möglichkeit zum Beenden eines Do…Loop.
Exit Do überträgt die Kontrolle sofort an die Anweisung, die auf die Loop Anweisung folgt.
Exit Do wird häufig verwendet, nachdem eine Bedingung ausgewertet wurde, z. B. in einer If...Then...Else Struktur. Möglicherweise möchten Sie eine Schleife beenden, wenn Sie eine Bedingung erkennen, die es unnötig oder unmöglich macht, das Iterieren fortzusetzen, z. B. einen fehlerhaften Wert oder eine Beendigungsanforderung. Eine Verwendung besteht Exit Do darin, eine Bedingung zu testen, die eine Endlosschleife verursachen könnte, bei der es sich um eine Schleife handelt, die eine große oder sogar unendliche Anzahl von Malen ausführen kann. Sie können verwenden Exit Do , um die Schleife zu escapen.
Sie können eine beliebige Anzahl von Exit Do Anweisungen an einer beliebigen Stelle in einem Do…Loop.
Wenn sie in geschachtelten Do Schleifen verwendet wird, Exit Do überträgt die Kontrolle über die innerste Schleife und in die nächste höhere Schachtelungsebene.
Beispiel 1
Im folgenden Beispiel werden die Anweisungen in der Schleife weiterhin ausgeführt, bis die index Variable größer als 10 ist. Die Until Klausel befindet sich am Ende der Schleife.
Dim index As Integer = 0
Do
Debug.Write(index.ToString & " ")
index += 1
Loop Until index > 10
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
Beispiel 2
Im folgenden Beispiel wird anstelle einer Klausel eine WhileUntil Klausel verwendet und condition am Anfang der Schleife statt am Ende getestet.
Dim index As Integer = 0
Do While index <= 10
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
Beispiel 3
Im folgenden Beispiel wird die Schleife beendet, condition wenn die index Variable größer als 100 ist. Die If Anweisung in der Schleife bewirkt jedoch, dass die Exit Do Anweisung die Schleife beendet, wenn die Indexvariable größer als 10 ist.
Dim index As Integer = 0
Do While index <= 100
If index > 10 Then
Exit Do
End If
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
Beispiel 4
Im folgenden Beispiel werden alle Zeilen in einer Textdatei gelesen. Die OpenText Methode öffnet die Datei und gibt einen StreamReader Wert zurück, der die Zeichen liest. In der Do...Loop Bedingung bestimmt die Peek Methode StreamReader , ob zusätzliche Zeichen vorhanden sind.
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)
Do While sr.Peek() >= 0
Debug.WriteLine(sr.ReadLine())
Loop
sr.Close()
End If
End Sub