共用方式為


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

更新:2007 年 11 月

只要給定的條件是 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 陳述式後面的陳述式。

規則

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

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

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

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

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

  • 無止盡迴圈Exit While 的一個用處是,可以測試會造成「無止盡迴圈」(Endless Loop) 的條件,無止盡的迴圈就是會執行極多次或甚至無限次數的迴圈。如果您偵測到這類狀況,可以使用 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)