Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Utasítások sorozatát futtatja mindaddig, amíg egy adott feltétel az True.
Szemantika
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 NothingVisual Basic a következőképpen kezeli.False |
statements |
Opcionális. Egy vagy több következő Whileutasítás , amely minden alkalommal conditionTruefut . |
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.
Megjegyzé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 Booleanlett.
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 WhileExit 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 a Continue While és Exit While utasítások használatát szemlélteti.
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