HOW TO:重複執行數個陳述式
更新:2007 年 11 月
您可以使用迴圈 (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 Sub
While 陳述式在開始迴圈前都會檢查條件。如果 number 已初始化為 6 而非 10,迴圈中的陳述式便不會執行。
若要在條件保持為 True 時執行陳述式群組
請使用 Do...Loop 陳述式 (Visual Basic) 並在迴圈開始或結束時指定測試條件。While (Visual Basic) 關鍵字的位置會決定條件從何處開始測試。下面這個範例可說明這點:
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 迴圈會使用「控制項變數」,其數值在每次迴圈重複期間會增加或減少。
若要以特定次數執行陳述式群組
決定控制變數的開始與結束值,並使用 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 的值的總和。
請參閱
工作
概念
參考
For Each...Next 陳述式 (Visual Basic)