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)

Koncepcje

Struktury pętli (Visual Basic)

Zagnieżdżone struktury sterujące (Visual Basic)