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 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.

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 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 az és az utasítások használatát szemlélteti Continue WhileExit 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

Lásd még