您可以使用迴圈 (Loop) 結構重複執行陳述式區塊。 根據條件的 Boolean 值,迴圈可以執行不定的次數,或受特定變數控制的一組次數。
不定次數迴圈
若要在條件為 True 時執行陳述式群組
請使用 While...End While 陳述式 (Visual Basic) 指定控制迴圈重複的條件。 下列範例會在 number 大於 6 時重複陳述式區塊。
Sub checkWhile() Dim counter As Integer = 0 Dim number As Integer = 10 While number > 6 number -= 1 counter += 1 End While MsgBox("The loop ran " & counter & " times.") End SubWhile 陳述式在開始迴圈前都會檢查條件。 如果 number 已初始化為 6 而非 10,迴圈中的陳述式便不會執行。
若要在條件保持為 True 時執行陳述式群組
請使用 Do...Loop 陳述式 (Visual Basic) 並在迴圈開始或結束時指定測試條件。 While 關鍵字的位置會決定條件從何處開始測試。 下列範例將說明這點。
Sub checkWhileFirst() Dim counter As Integer = 0 Dim number As Integer = 10 Do While number > 6 number -= 1 counter += 1 Loop MsgBox("The loop ran " & counter & " times.") End Sub Sub checkWhileLast() Dim counter As Integer = 0 Dim number As Integer = 5 Do number -= 1 counter += 1 Loop While number > 6 MsgBox("The loop ran " & counter & " times.") End Sub在之前的範例中,第一 Do 迴圈會執行四次,而第二 Do 迴圈會執行一次。
若要執行陳述式群組直到條件變成 True
請使用 Do...Loop 建構,其中的 While 以 Until 關鍵字取代。 使用 While 時,關鍵字的位置決定了條件從何處開始測試。 下列範例將說明這點。
Sub checkUntilFirst() Dim counter As Integer = 0 Dim number As Integer = 20 Do Until number = 15 number -= 1 counter += 1 Loop MsgBox("The loop ran " & counter & " times.") End Sub Sub checkUntilLast() Dim counter As Integer = 0 Dim number As Integer = 20 Do number -= 1 counter += 1 Loop Until number = 15 MsgBox("The loop ran " & counter & " times.") End Sub在之前的範例中,每個 Do 迴圈都會執行五次。
以特定次數進行迴圈
當您事先不知道需要在迴圈中執行多少次陳述式時,很適合使用 While 和 Do 迴圈。 不過,當您預期執行特定次數的迴圈,最好選擇 For...Next 陳述式 (Visual Basic)。 和 While 或 Do 迴圈不同的是,For...Next 迴圈會使用「控制項變數」(Control Variable),其數值在每次迴圈重複期間會增加或減少。
若要以特定次數執行陳述式群組
決定控制變數的開始與結束值,並使用 For 陳述式加以指定。
For i As Integer = 1 To 10如果控制變數並未在迴圈外宣告,您可以使用 As 子句將它宣告為 For 陳述式的一部分。
請使用 Step 關鍵字表示每次反覆運算時應該增加的控制變數數量。 除非另外指定,否則控制變數數量每次會增加 1, 使用負值會使得控制變數遞減。
For i As Integer = 10 To 1 Step -1在最後要重複執行的陳述式之後接上 Next 陳述式,來完成 For...Next 的語法結構。 您可以在 Next 陳述式中指定控制變數。
Function addBackward(ByVal highest As Integer) As Integer Dim total As Integer = 0 For i As Integer = highest To 1 Step -1 total += i Next i Return total End Function之前的範例會傳回從 1 到傳遞給參數 highest 的值的總和。
請參閱
工作
HOW TO:將控制權轉移出控制結構 (Visual Basic)
HOW TO:在集合或陣列中執行各元素的多個陳述式 (Visual Basic)
HOW TO:跳到迴圈的下一個反覆運算 (Visual Basic)
參考
For Each...Next 陳述式 (Visual Basic)