Míg... Záró utasítás (Visual Basic)
Utasítások sorozatát futtatja mindaddig, amíg egy adott feltétel az True
.
Syntax
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Részek
Időszak | Definíció |
---|---|
condition |
Szükséges. Boolean Kifejezés. Ha condition igen, akkor a Nothing Visual Basic a következőképpen kezeli.False |
statements |
Opcionális. Egy vagy több következő While utasítás , amely minden alkalommal condition True fut . |
Continue While |
Opcionális. A vezérlő átvitele a blokk következő iterációjára While . |
Exit While |
Opcionális. A blokkon kívülre továbbítja az While irányítást. |
End While |
Szükséges. Leállítja a blokk definícióját While . |
Megjegyzések
Akkor használjon struktúrát While...End While
, ha egy utasításkészletet határozatlan számú alkalommal szeretne megismételni, amíg egy feltétel megmarad True
. Ha nagyobb rugalmasságot szeretne, hogy hol teszteli a feltételt, vagy milyen eredménnyel teszteli, akkor a Do... Ciklusutasítás. Ha meg szeretné ismételni az utasításokat egy megadott számú alkalommal, a For... A következő utasítás általában jobb választás.
Feljegyzés
A While
kulcsszót a Do... Loop Utasítás, a Kihagyás közben záradék és a Take While záradék.
Ha condition
igen True
, az összes futtatás addig statements
fut, amíg az End While
utasítás meg nem történik. A vezérlő ezután visszatér az While
utasításhoz, és condition
ismét be van jelölve. Ha condition
még mindig True
, a folyamat ismétlődik. Ha így van False
, a vezérlőelem az utasítást követő End While
utasításra kerül.
Az While
utasítás mindig ellenőrzi a feltételt, mielőtt elindítja a ciklust. A ciklus folytatódik, amíg a feltétel megmarad True
. Ha condition
először False
lép be a hurokba, az még egyszer sem fut.
Az condition
eredmények általában két érték összehasonlításából származnak, de bármely olyan kifejezés lehet, amely logikai adattípusú értékre (True
vagy False
). Ez a kifejezés tartalmazhat egy másik adattípust, például egy numerikus típust, amely konvertálva Boolean
lett.
Hurkokat úgy ágyazhat be While
, hogy az egyik hurkot egy másikba helyezi. Különböző típusú vezérlőstruktúrák egymásba is beágyazhatók. További információ: Beágyazott vezérlőstruktúrák.
Kilépés közben
Az Exit While utasítással más módon is kiléphet egy ciklusból While
. Exit While
azonnal átviszi az irányítást az utasítást követő utasításba End While
.
Általában valamilyen feltétel kiértékelése után használja Exit While
(például egy If...Then...Else
struktúrában). Előfordulhat, hogy ki szeretne lépni egy ciklusból, ha olyan feltételt észlel, amely szükségtelenné vagy lehetetlenné teszi az iterálás folytatását, például hibás értéket vagy megszüntetési kérelmet. Akkor használhatóExit While
, ha olyan feltételt tesztel, amely végtelen ciklust okozhat, ami egy olyan hurok, amely rendkívül nagy vagy akár végtelen számú alkalommal futtatható. Ezután a hurok megkerüléséhez használhatja Exit While
.
Tetszőleges számú Exit While
utasítást elhelyezhet a While
hurokban.
Beágyazott hurkokban While
Exit While
való használat esetén az átvitel a legbelső hurokból és a beágyazás következő magasabb szintjére továbbítja az irányítást.
Az Continue While
utasítás azonnal átviszi az irányítást a ciklus következő iterációjába. További információ: Folytatási utasítás.
1. példa
Az alábbi példában a ciklusban lévő utasítások addig futnak, amíg a index
változó nem nagyobb, mint 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
2. példa
Az alábbi példa az és az utasítások használatát szemlélteti Continue While
Exit 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
3. példa
Az alábbi példa egy szövegfájl összes sorát beolvassa. A OpenText metódus megnyitja a fájlt, és visszaad egy StreamReader karaktert, amely beolvassa a karaktereket. While
A feltételben a Peek metódus StreamReader
határozza meg, hogy a fájl tartalmaz-e további karaktereket.
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