Dela via


Medan... End While-instruktion (Visual Basic)

Kör en serie instruktioner så länge ett angivet villkor är True.

Syntax

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

Delar

Period Definition
condition Obligatoriska. Boolean Uttryck. Om condition är Nothingbehandlar Visual Basic det som False.
statements Valfritt. En eller flera instruktioner efter While, som körs varje gång condition är True.
Continue While Valfritt. Överför kontrollen till nästa iteration av While blocket.
Exit While Valfritt. Överför kontrollen ut ur While blocket.
End While Obligatoriska. Avslutar definitionen av While blocket.

Kommentarer

Använd en While...End While struktur när du vill upprepa en uppsättning instruktioner på obestämd tid, så länge ett villkor förblir True. Om du vill ha mer flexibilitet med var du testar villkoret eller vilket resultat du testar det för, kanske du föredrar Do... Loop-instruktion. Om du vill upprepa uttrycken ett angivet antal gånger, för ... Nästa instruktion är vanligtvis ett bättre val.

Kommentar

Nyckelordet While används också i Do ... Loop-instruktion, Skip While-satsen och Take While-satsen.

Om condition är True, körs alla statements tills -instruktionen End While påträffas. Kontrollen återgår sedan till -instruktionen While och condition kontrolleras igen. Om condition är fortfarande Trueupprepas processen. Om det är Falseskickar kontrollen till -instruktionen som följer -instruktionen End While .

Instruktionen While kontrollerar alltid villkoret innan loopen startas. Loopningen fortsätter medan villkoret förblir True. Om condition är False när du först anger loopen körs den inte ens en gång.

Resultatet condition är vanligtvis en jämförelse av två värden, men det kan vara valfritt uttryck som utvärderas till ett booleskt datatypvärde (True eller False). Det här uttrycket kan innehålla ett värde av en annan datatyp, till exempel en numerisk typ, som har konverterats till Boolean.

Du kan kapsla While loopar genom att placera en loop i en annan. Du kan också kapsla olika typer av kontrollstrukturer inom varandra. Mer information finns i Kapslade kontrollstrukturer.

Avsluta medan

Instruktionen Avsluta medan kan vara ett annat sätt att avsluta en While loop. Exit While överför omedelbart kontrollen till instruktionen som följer instruktionen End While .

Du använder Exit While vanligtvis när vissa villkor har utvärderats (till exempel i en If...Then...Else struktur). Du kanske vill avsluta en loop om du identifierar ett villkor som gör det onödigt eller omöjligt att fortsätta iterera, till exempel ett felaktigt värde eller en begäran om avslutning. Du kan använda Exit While när du testar för ett villkor som kan orsaka en oändlig loop, vilket är en loop som kan köra ett extremt stort eller till och med oändligt antal gånger. Du kan sedan använda Exit While för att fly från loopen.

Du kan placera valfritt antal Exit While instruktioner var som helst i loopen While .

När den används i kapslade While loopar Exit While överförs kontrollen från den innersta loopen och till nästa högre kapslingsnivå.

Instruktionen Continue While överför omedelbart kontrollen till nästa iteration av loopen. Mer information finns i Fortsätt-instruktion.

Exempel 1

I följande exempel fortsätter -uttrycken i loopen att köras tills variabeln index är större än 10.

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 

Exempel 2

Följande exempel illustrerar användningen av - och Exit While -uttryckenContinue 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

Exempel 3

I följande exempel läss alla rader i en textfil. Metoden OpenText öppnar filen och returnerar en StreamReader som läser tecknen. I villkoret WhilePeek avgör metoden för StreamReader filen om filen innehåller ytterligare tecken.

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

Se även