Delen via


Terwijl... Instructie End While (Visual Basic)

Voert een reeks instructies uit zolang een bepaalde voorwaarde is True.

Syntaxis

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

generator

Term Definitie
condition Vereist. Boolean Expressie. Als condition dat het is Nothing, behandelt Visual Basic het als False.
statements Optioneel. Een of meer instructies volgen While, die elke keer conditionTrueworden uitgevoerd.
Continue While Optioneel. Hiermee wordt het besturingselement overgedragen naar de volgende iteratie van het While blok.
Exit While Optioneel. Hiermee wordt het besturingselement buiten het While blok overgedragen.
End While Vereist. Hiermee wordt de definitie van het While blok beëindigd.

Opmerkingen

Gebruik een While...End While structuur als u een reeks instructies voor onbepaalde tijd wilt herhalen, zolang een voorwaarde blijft Truebestaan. Als u meer flexibiliteit wilt met waar u de voorwaarde test of welk resultaat u het test, kunt u de voorkeur geven aan de do... Lusinstructie. Als u de instructies een bepaald aantal keren wilt herhalen, wordt de For... Next Statement is meestal een betere keuze.

Notitie

Het While trefwoord wordt ook gebruikt in de do... Lusinstructie, de Component Skip While en de Take While-component.

Als condition dat het is True, worden alle statements uitvoeringen uitgevoerd totdat de End While instructie wordt aangetroffen. Control keert vervolgens terug naar de While instructie en condition wordt opnieuw gecontroleerd. Als condition het nog steeds Trueis, wordt het proces herhaald. Als dit het geval is False, wordt de controle doorgegeven aan de instructie die volgt op de End While instructie.

De While instructie controleert altijd de voorwaarde voordat de lus wordt gestart. Herhalen gaat door terwijl de voorwaarde blijft Truebestaan. False Als condition u de lus voor het eerst invoert, wordt deze niet één keer uitgevoerd.

Het condition resultaat is meestal van een vergelijking van twee waarden, maar het kan elke expressie zijn die resulteert in een Booleaanse waarde voor het gegevenstype (True of False). Deze expressie kan een waarde bevatten van een ander gegevenstype, zoals een numeriek type, dat is geconverteerd naar Boolean.

U kunt lussen nesten door de ene lus binnen een andere lus te plaatsen While . U kunt ook verschillende soorten controlestructuren in elkaar nesten. Zie Geneste besturingsstructuren voor meer informatie.

Afsluiten tijdens

De instructie Exit While kan een andere manier bieden om een While lus af te sluiten. Exit While onmiddellijk de controle overdraagt naar de instructie die volgt op de End While instructie.

U gebruikt Exit While meestal nadat een bepaalde voorwaarde is geëvalueerd (bijvoorbeeld in een If...Then...Else structuur). Mogelijk wilt u een lus afsluiten als u een voorwaarde detecteert die het onnodig of onmogelijk maakt om door te gaan met herhalen, zoals een onjuiste waarde of een beëindigingsaanvraag. U kunt Exit While gebruiken wanneer u test op een voorwaarde die een eindeloze lus kan veroorzaken. Dit is een lus die een extreem groot of zelfs oneindig aantal keren kan worden uitgevoerd. Vervolgens kunt u deze gebruiken Exit While om de lus te ontsnappen.

U kunt een willekeurig aantal Exit While instructies overal in de While lus plaatsen.

Bij gebruik binnen geneste While lussen brengt Exit While u de controle buiten de binnenste lus en in het volgende hogere nestniveau over.

Met Continue While de instructie wordt het besturingselement onmiddellijk overgedragen naar de volgende iteratie van de lus. Zie Continue-instructie voor meer informatie.

Voorbeeld 1

In het volgende voorbeeld blijven de instructies in de lus worden uitgevoerd totdat de index variabele groter is dan 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 

Voorbeeld 2

In het volgende voorbeeld ziet u het gebruik van de Continue While en Exit While instructies.

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

Voorbeeld 3

In het volgende voorbeeld worden alle regels in een tekstbestand gelezen. De OpenText methode opent het bestand en retourneert een StreamReader bestand dat de tekens leest. In de While voorwaarde bepaalt de Peek methode van de StreamReader methode of het bestand extra tekens bevat.

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

Zie ook