如何:重复运行多条语句 (Visual Basic)

您可以使用循环结构反复运行语句块。 循环可以运行不确定的次数(取决于条件的 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 关键字的位置决定在何处测试条件。 下面的示例阐释了这一点。

    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 构造与 Until 关键字而不是 While 配合使用。 就像使用 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
    

    如果未在循环外声明控制变量,可以在 For 语句中使用 As 子句声明该变量。

  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 的值)的总和。

请参见

任务

如何:将控件转移到控件结构外 (Visual Basic)

如何:为集合或数组中的每个元素运行多个语句 (Visual Basic)

如何:提高循环的性能 (Visual Basic)

如何:跳转到循环的下一次迭代 (Visual Basic)

参考

For Each...Next 语句 (Visual Basic)

概念

决策结构 (Visual Basic)

循环结构 (Visual Basic)

其他控件结构 (Visual Basic)

嵌套的控件结构 (Visual Basic)

其他资源

控制流 (Visual Basic)