While...End While – příkaz (Visual Basic)
Spustí řadu příkazů, pokud je dána podmínka True .
Syntax
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Součásti
| Pojem | Definice |
|---|---|
condition |
Povinná hodnota. Boolean Výraz. Pokud condition je , Visual Basic považuje za Nothing False . |
statements |
Nepovinný parametr. Po jednom nebo více While příkazech, které se spustí pokaždé, je condition True . |
Continue While |
Nepovinný parametr. Přenese řízení na další iteraci While bloku. |
Exit While |
Nepovinný parametr. Přenese řízení mimo While blok. |
End While |
Povinná hodnota. Ukončí definici While bloku. |
Poznámky
Strukturu použijte, pokud chcete opakovat sadu příkazů s neurčitým počtem opakování, pokud podmínka While...End While zůstane True . Pokud chcete větší flexibilitu při testování podmínky nebo výsledku, na který ji testujete, můžete preferovat nastavení Do... Loop – příkaz. Pokud chcete příkazy opakovat nastavený počet opakování, pro... Lepší volbou je obvykle příkaz Next.
Poznámka
Klíčové While slovo se používá také v části Do... Loop –příkaz , klauzule Skip While a klauzule Take While
Pokud condition je , všechny True statements spuštění, dokud není zjištěn příkaz End While . Ovládací prvek se pak vrátí k While příkazu a je znovu condition zaškrtnut. Pokud condition je stále , proces se True opakuje. Pokud je , False ovládací prvek se předá příkazu, který následuje End While za příkazem .
Příkaz While vždy zkontroluje podmínku před tím, než spustí smyčku. Smyčka pokračuje, zatímco podmínka zůstává True . Pokud condition je při prvním vstupu do False smyčky, nespouštěl se ani jednou.
Obvykle je výsledkem porovnání dvou hodnot, ale může to být libovolný výraz, který se vyhodnotí jako logická hodnota datového condition typu ( nebo True False ). Tento výraz může obsahovat hodnotu jiného datového typu, například číselného typu, který byl převeden na Boolean .
Smyčky můžete While vnořit tak, že umístíte jednu smyčku do jiné. Můžete také vnořit různé druhy řídicích struktur mezi sebou. Další informace najdete v tématu Vnořené řídicí struktury.
Exit While
Příkaz Exit While může poskytnout další způsob, jak ukončit While smyčku. Exit While okamžitě přenese řízení na příkaz, který následuje End While příkaz .
Obvykle se používá Exit While po vyhodnocení určité podmínky (například ve If...Then...Else struktuře). Pokud zjistíte podmínku, která znemožňuje nebo znemožňuje pokračovat v iteraci, jako je chybná hodnota nebo žádost o ukončení, můžete chtít ukončit smyčku. Můžete použít při testování podmínky, která by mohla způsobit nekonečnou smyčku , což je smyčka, která by mohla spustit extrémně velký nebo dokonce neomezený Exit While počet opakování. Potom můžete použít k Exit While řídicí smyčce.
Kdekoli ve smyčce Exit While můžete umístit libovolný počet While příkazů.
Při použití ve vnořených smyčkách přenáší řízení mimo nejvnitřnější smyčku a na další vyšší While Exit While úroveň vnoření.
Příkaz Continue While okamžitě přenese řízení na další iteraci smyčky. Další informace najdete v tématu Continue – příkaz.
Příklad 1
V následujícím příkladu se příkazy ve smyčce budou spouštět, dokud proměnná nebude index 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í příkazů Continue While Exit While a .
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 načte všechny řádky v textovém souboru. Metoda OpenText otevře soubor a vrátí , který StreamReader čte znaky. V While podměně Peek metoda StreamReader určuje, jestli 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