Do...Loop — Instrukcja (Visual Basic)
Powtarza blok instrukcji podczas Boolean warunek jest True lub dopóki warunek staje się True.
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
Części
Termin |
Definicja |
Do |
Wymagane.Uruchamia definicji Do pętli. |
While |
Wymagane, chyba że Until jest używana.Powtarzaj pętlę, aż do condition jest False. |
Until |
Wymagane, chyba że While jest używana.Powtarzaj pętlę, aż do condition jest True. |
condition |
Opcjonalne.Booleanwyrażenie.Jeśli condition jest Nothing, Visual Basic traktuje ją jako False. |
statements |
Opcjonalne.Jeden lub więcej instrukcji, które są powtarzane w czasie lub do czasu, condition jest True. |
Continue Do |
Opcjonalne.Przekazuje sterowanie do następnej iteracji Do pętli. |
Exit Do |
Opcjonalne.Przekazuje sterowanie z Do pętli. |
Loop |
Wymagane.Kończy definicję Do pętli. |
Uwagi
Użyj Do...Loop struktury należy powtórzyć instrukcji nieskończoną liczbę razy, dopóki warunek jest spełniony.Jeśli chcesz powtarzać oświadczeń okreoloną liczbę razy, dla...Następna instrukcja jest zwykle lepszym wyborem.
Można użyć albo While lub Until do określenia condition, ale nie obu.
Można przetestować condition tylko jeden raz, na początku lub końcu pętli.Jeśli test condition na początku pętli (w Do instrukcji), pętla może nie działać nawet jeden raz.Jeśli test na końcu pętli (w Loop instrukcji), pętla zawsze działa co najmniej jeden raz.
Warunek jest zazwyczaj wynikiem porównania dwóch wartości, ale można go wyrażenie ma wartość Boolean Data Type (Visual Basic) wartość (True lub False).Zawiera ona wartości z innych typów danych, takich jak typy liczbowe, które zostały przekonwertowane na Boolean.
Można zagnieździć Do pętli, umieszczając jedną pętli w innym.Różne rodzaje struktur kontroli w ramach wzajemnie można zagnieżdżać.Aby uzyskać więcej informacji, zobacz Zagnieżdżone struktury sterujące (Visual Basic).
[!UWAGA]
Do...Loop Struktury zapewnia większą elastyczność niż While...End While — Instrukcja (Visual Basic) , ponieważ pozwala zdecydować, czy pętlę podczas condition przestanie być True lub po raz pierwszy staje się True.Umożliwia ona również test condition na początku lub końcu pętli.
Czy zakończyć
Należy zakończyć instrukcji może zapewnić alternatywny sposób, aby zakończyć Do…Loop.Exit DoPrzenosi kontroli niezwłocznie oświadczenie, że następuje Loop instrukcji.
Exit Doczęsto jest używany po ocenie niektóre warunek, na przykład w If...Then...Else struktury.Można zamknąć pętlę, jeśli wykryć warunek, który ułatwia niepotrzebne lub niemożliwe nadal Iterowanie jak błędne wartości lub żądanie zakończenia.Użyj jednego z Exit Do jest do testowania warunku, który może spowodować w pętli nieskończonej, który jest pętli, który może uruchomić dużych lub nawet nieskończoną liczbę razy.Można użyć Exit Do uciec pętli.
Może zawierać dowolną liczbę Exit Do instrukcji w dowolnym miejscu w Do…Loop.
Gdy używany zagnieżdżone w Do pętli, Exit Do przekazuje sterowanie z pętli wewnętrzne z do następnego wyższego poziomu zagnieżdżenia.
Przykład
W poniższym przykładzie oświadczenia w pętli nadal uruchomiony dopiero index zmienna jest większa niż 10.Until Klauzuli znajduje się na końcu pętli.
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
W poniższym przykładzie użyto While klauzuli zamiast Until klauzuli, oraz condition jest badany na początku pętli zamiast na końcu.
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
W poniższym przykładzie condition zatrzymuje pętli przy index zmienna jest większa niż 100.If Instrukcji pętli, jednak powoduje Exit Do instrukcji zatrzymać pętli, gdy zmienna indeksu jest większa niż 10.
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
Poniższy przykład odczytuje wszystkie wiersze w pliku tekstowym.OpenText Metoda otwiera plik i zwraca StreamReader , odczytuje znaki.W Do...Loop warunek, Peek metoda StreamReader Określa, czy są wszelkie dodatkowe znaki.
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
Zobacz też
Informacje
For...Next — Instrukcja (Visual Basic)
Boolean Data Type (Visual Basic)
Exit — Instrukcja (Visual Basic)
While...End While — Instrukcja (Visual Basic)