📅  最后修改于: 2021-01-11 14:17:57             🧑  作者: Mango
当我们想无限期地重复代码块或一组语句直到条件为True时,才使用“直到循环”。可以在循环的开始或结束时检查条件。
“直到…”循环语句检查循环开始时的条件,“直到…”循环直到语句检查循环结束时的条件。
如果在循环开始时检查了条件,则如果最初本身满足条件,则代码块不会执行(并且循环甚至不会运行一次)。如果最后检查了条件,则循环至少运行一次。
Do Until [Condition]
...............
...............
[Block of code]
...............
Loop
流程图
在此示例中,我们使用Do Before …循环在循环开始时检查条件。仅当条件为false时,才执行循环内的语句。当条件为真时,它存在于循环之外。
Private Sub Constant_demo_Click()
i = 5
Do Until i > 10
i = i + 1
MsgBox ("The value of i is : " & i)
Loop
End Sub
执行代码后,您将获得输出:
The value of i is: 6
The value of i is: 7
The value of i is: 8
The value of i is: 9
The value of i is: 10
The value of i is: 11
Do … Until循环用于在循环结束时检查条件。
句法
Do
..............
..............
[Block of code]
..............
Loop Until [Condition]
流程图
在此示例中,我们使用Do … Until循环在循环结束时检查条件。即使条件为true,循环内的语句也至少执行一次。
Private Sub Constan_demo_Click()
i = 5
Do
i = i + 1
MsgBox "the value of i is: " & i
Loop Until i < 10
End Sub
执行代码后,您将在消息框中获得以下输出。
您可以通过使用Exit Do语句提前退出Do While或Do While循环,而无需完成整个周期。
Exit Do语句将立即停止执行循环并立即执行代码段。对于内部嵌套级别,它将停止并执行下一个外部嵌套级别。
一个循环中可以有多个Exit Do语句。如果要在达到特定值或满足特定条件时终止循环,或者想要在特定点结束无限循环,则该功能特别有用。
例如:
Sub exitDo1()
Dim i As Integer
Dim iTotal As Integer
iTotal = 0
Do While i < 10
iTotal = i + iTotal
i = i + 1
If i = ActiveSheet.Range("A1") Then
Exit Do
End If
Loop
MsgBox iTotal
End Sub
执行上面的代码,您将获得以下输出。