共用方式為


While...End While 陳述式 (Visual Basic)

只要給定的條件是 True,便會執行一系列的陳述式。

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

組件

詞彙

定義

condition

必要項。 Boolean 運算式。 如果 condition 是 Nothing,Visual Basic 會將它視為 False。

statements

選擇項。 While 後面的一或多個陳述式,每次 condition 是 True 時就會執行該陳述式。

Exit While

選擇項。 從 While 區塊當中傳出控制權。

End While

必要項。 結束 While 區塊的定義。

備註

只要條件仍是 True,在您想要重複一組陳述式不定次數時,請使用 While...End While 結構。 如果想要在何處測試條件,或測試何種結果方面更具彈性,您可能會慣用 Do...Loop 陳述式 (Visual Basic)。 如果您想要重複陳述式特定次數,For...Next 陳述式 (Visual Basic) 通常是較好的選擇。

如果 condition 為 True,則會執行所有 statements,直到遇到 End While 陳述式為止。 接著,會將控制權交回 While 陳述式,並再次檢查 condition。 如果 condition 仍為 True,則會重複這項處理。 如果它是 False,則會將控制權傳遞至 End While 陳述式後面的陳述式。

注意事項注意事項

While 關鍵字也可以用於 Do...Loop 陳述式 (Visual Basic)Skip While 子句 (Visual Basic)Take While 子句 (Visual Basic)

規則

  • 條件的本質條件通常來自於兩個值的比較,它也可以是任何評估為 Boolean 資料型別 (Visual Basic) 值 (True 或 False) 的運算式。 其中包含其他資料型別的值,例如已轉換為 Boolean 的數字型別 (Numeric Type)。

  • 測試條件While 陳述式在開始迴圈前都會檢查條件。 只要條件維持為 True,迴圈就會繼續。

  • 反覆運算次數當您第一次進入迴圈時,如果 condition 為 False,則它甚至一次都不會執行。

  • 巢狀迴圈您可以將一個迴圈置於另一個迴圈內,以便巢狀化 While 迴圈。 您可以將不同類型的控制結構以巢狀結構互置。 如需詳細資訊,請參閱巢狀控制結構 (Visual Basic)

  • 從迴圈當中傳出Exit 陳述式 (Visual Basic) 會立即將控制權傳輸至接在 End While 陳述式之後的陳述式。 如果偵測到一個條件 (例如錯誤值或終止要求),而該條件會使迴圈不需要或不可能繼續重複執行,則您可能會想要結束迴圈。 您可以將任意數目的 Exit While 陳述式放在 While 中的任何位置。 Exit While 通常會在評估一些條件之後使用,例如 If...Then...Else 結構。

  • 無止盡迴圈Exit While 的其中一個用處是可以測試會造成「無止盡迴圈」的條件,無止盡迴圈就是會執行極多次,甚至無數次的迴圈。 如果您偵測到這類狀況,可以使用 Exit While 逸出此迴圈。 如需詳細資訊,請參閱Do...Loop 陳述式 (Visual Basic)

範例

這個範例會使用 While...End While 結構,增加計數器變數。 只要條件評估為 True,就會執行迴圈中的陳述式。

Dim counter As Integer = 0
While counter < 20
    counter += 1
    ' Insert code to use current value of counter.
End While
MsgBox("While loop ran " & CStr(counter) & " times")

請參閱

參考

Do...Loop 陳述式 (Visual Basic)

For...Next 陳述式 (Visual Basic)

Boolean 資料型別 (Visual Basic)

Exit 陳述式 (Visual Basic)

概念

迴圈結構 (Visual Basic)

巢狀控制結構 (Visual Basic)