如何:重复运行多条语句 (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 循环使用一个“控制变量”,该变量的值在每次重复循环的过程中增大或减小。
将一组语句运行设定的次数
确定控制变量的起始值和结束值,并使用 For 语句指定它们。
For i As Integer = 1 To 10
如果未在循环外声明控制变量,可以在 For 语句中使用 As 子句声明该变量。
使用 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 的值)的总和。
请参见
任务
如何:为集合或数组中的每个元素运行多个语句 (Visual Basic)
参考
For Each...Next 语句 (Visual Basic)