共用方式為


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 迴圈會使用「控制項變數」,其數值在每次迴圈重複期間會增加或減少。

若要以特定次數執行陳述式群組

  1. 決定控制變數的開始與結束值,並使用 For 陳述式加以指定。

    For i As Integer = 1 To 10
    

    如果控制變數並未在迴圈外宣告,您可以使用 As 子句將它宣告為 For 陳述式的一部分。

  2. 請使用 Step 關鍵字表示每次反覆運算時應該增加的控制變數數量。除非另外指定,否則控制變數數量每次會增加 1,使用負值會使得控制變數遞減。

    For i As Integer = 10 To 1 Step -1
    
  3. 在最後要重複執行的陳述式之後接上 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:將控制權轉移出控制結構

HOW TO:在集合或陣列中執行各元素的多個陳述式

HOW TO:改善迴圈的效能

HOW TO:跳到迴圈的下一個反覆運算

概念

決策結構

迴圈結構

其他控制結構

巢狀控制結構

參考

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

其他資源

Visual Basic 中的控制流程