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")