While...End While – příkaz (Visual Basic)

Spustí řadu příkazů, pokud je Truedaná podmínka .

Syntaxe

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

Součástky

Pojem definice
condition Povinný: Boolean Výraz. Pokud condition je Nothing, Visual Basic ji považuje za False.
statements Nepovinné. Jeden nebo více následujících příkazůWhile, které se spouští pokaždé, je Truecondition .
Continue While Nepovinné. Přenese řízení do další iterace While bloku.
Exit While Nepovinné. Přenese kontrolu mimo While blok.
End While Povinný: Ukončí definici While bloku.

Poznámky

While...End While Strukturu použijte, pokud chcete opakovat sadu příkazů neurčitý počet, pokud podmínka zůstane True. Pokud chcete větší flexibilitu s tím, kde testujete podmínku nebo jaký výsledek ho otestujete, můžete upřednostnit ... Příkaz Loop. Pokud chcete příkazy opakovat nastavený počet opakování, hodnota For... Další příkaz je obvykle lepší volbou.

Poznámka:

Klíčové While slovo se také používá v nástroji Do... Příkaz Loop, klauzuleSkip While a klauzule Take While.

Pokud condition je True, všechny statements spuštění, dokud End While se příkaz nespustí. Ovládací prvek se pak vrátí do While příkazu a condition je znovu zaškrtnutý. Pokud condition je stále True, proces se opakuje. Pokud je False, ovládací prvek předá příkazu, který následuje za příkazem End While .

Příkaz While vždy zkontroluje podmínku před spuštěním smyčky. Smyčka pokračuje, zatímco podmínka zůstává True. Pokud condition je False při prvním zadání smyčky, nespustí se ani jednou.

Obvykle condition se jedná o porovnání dvou hodnot, ale může se jednat o libovolný výraz, který se vyhodnotí jako logická hodnota datového typu (True nebo False). Tento výraz může obsahovat hodnotu jiného datového typu, například číselný typ, který byl převeden na Boolean.

Smyčky můžete vnořit While umístěním jedné smyčky do jiné. Můžete také vnořit různé druhy řídicích struktur do sebe. Další informace naleznete v tématu Vnořené řídicí struktury.

Ukončit během

Příkaz Exit While může poskytnout jiný způsob, jak ukončit smyčku While . Exit While okamžitě přenese řízení na příkaz, který následuje za příkazem End While .

Obvykle se používá Exit While po vyhodnocení určité podmínky (například ve If...Then...Else struktuře). Smyčku můžete ukončit, pokud zjistíte podmínku, která znemožní nebo znemožní iteraci, jako je chybná hodnota nebo žádost o ukončení. Když Exit While testujete podmínku, která by mohla způsobit nekonečnou smyčku, což je smyčka, která by mohla spustit extrémně velký nebo dokonce nekonečný počet opakování. Pak můžete použít Exit While k úniku smyčky.

Libovolný počet Exit While příkazů můžete umístit kdekoli ve While smyčce.

Při použití v rámci vnořených While smyček přenese řízení z vnitřní smyčky Exit While a do další vyšší úrovně vnoření.

Příkaz Continue While okamžitě přenese řízení do další iterace smyčky. Další informace naleznete v tématu Continue – příkaz.

Příklad 1

V následujícím příkladu příkazy ve smyčce se budou spouštět, dokud index proměnná není větší než 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 

Příklad 2

Následující příklad znázorňuje použití Continue While příkazů a Exit While příkazů.

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

Příklad 3

Následující příklad přečte všechny řádky v textovém souboru. Metoda OpenText otevře soubor a vrátí StreamReader znak, který čte znaky. V podmínce While metoda StreamReader určuje, Peek zda soubor obsahuje další znaky.

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

Viz také