标签:嵌套循环 条件判断 结构 word loop 强制退出 step 内容 until
当条件为 True 时,或直到条件变为 True 时,重复执行一个语句块中的命令。
语法
Do [{While | Until} condition]
[statements]
[Exit
Do]
[statements]
Loop
或者可以使用下面这种语法:
Do
[statements]
[Exit
Do]
[statements]
Loop [{While | Until} condition]
Do Loop 语句的语法具有以下几个部分:
部分 | 描述 |
---|---|
condition | 可选参数。数值表达式或字符串表达式,其值为 True 或 False。如果 condition 是 Null,则 condition 会被当作 False。 |
statements | 一条或多条命令,它们将被重复当或直到 condition 为 True。 |
说明
在 Do...Loop 中可以在任何位置放置任意个数的 Exit Do 语句,随时跳出 Do...Loop 循环。Exit Do 通常用于条件判断之后,例如 If...Then,在这种情况下,Exit Do 语句将控制权转移到紧接在 Loop 命令之后的语句。
如果 Exit Do 使用在嵌套的 Do...Loop 语句中,则 Exit Do 会将控制权转移到 Exit Do 所在位置的外层循环。
本示例示范如何使用 Do...Loop 语句。内层的 Do...Loop 语句循环到第 10 次时将标志值设置为 False,并用 Exit Do 语句强制退出内层循环。外层循环则在检查到标志值为 False 时,马上退出。
Dim Check, Counter Check = True: Counter = 0 ‘
设置变量初始值。Do ‘
外层循环。Do While Counter < 20
‘
内层循环。Counter = Counter + 1 ‘
计数器加一。If Counter = 10 Then ‘
如果条件成立。Check = False ‘
将标志值设成False
。Exit Do
‘
退出内层循环。End If
Loop
Loop Until Check = False ‘
退出外层循环。
只要指定的条件为 True,则会重复执行一系列的语句。
语法
While condition
[statements]
Wend
While...Wend 语句的语法具有以下几个部分:
部分 | 描述 |
---|---|
condition | 必要参数。数值表达式或字符串表达式,其计算结果为 True 或 False。如果 condition 为 Null,则 condition 会视为 False。 |
statements | 可选参数。一条或多条语句,当条件为 True 时执行。 |
说明
如果 condition 为 True,则所有的 statements 都会执行,一直执行到 Wend 语句。然后再回到 While 语句,并再一次检查 condition,如果 condition 还是为 True,则重复执行。如果不为 True,则程序会从 Wend 语句之后的语句继续执行。
While...Wend 循环也可以是多层的嵌套结构。每个 Wend 匹配最近的 While 语句。
提示 Do...Loop 语句提供了一种结构化与适应性更强的方法来执行循环。
本示例使用 While...Wend 语句来增加计数变量的值。如果条件判断值为 True,则循环内的语句将一直执行下去。
Dim Counter Counter = 0 ‘
设置变量初值。While Counter < 20 ‘
测试计数器的值。Counter = Counter + 1 ‘
将计数器的值加一。Wend ‘
当Counter > 19
时则循环终止。Debug.Print Counter ‘
在“立即”窗口中显示数字20
。
以指定次数来重复执行一组语句。
语法
For counter = start To end [Step step]
[statements]
[Exit
For]
[statements]
Next [counter]
For Next 语句的语法具有以下几个部分:
部分 | 描述 |
---|---|
counter | 必要参数。用做循环计数器的数值变量。这个变量不能是 Boolean 或数组元素。 |
start | 必要参数。counter 的初值。 |
End | 必要参数,counter 的终值。 |
Step | 可选参数。counter 的步长。如果没有指定,则 step 的缺省值为 1。 |
Statements | 可选参数。放在 For 和 Next 之间的一条或多条语句,它们将被执行指定的次数。 |
说明
step 参数可以是正数或负数。step 参数值决定循环的执行情况,如下所示:
值 | 循环执行,如果 |
---|---|
正数或 0 | counter <= end |
负数 | counter >= end |
当所有循环中的语句都执行后,step 的值会加到 counter 中。此时,循环中的语句可能会再次执行(基于循环开始执行时同样的测试),也可能是退出循环并从 Next 语句之后的语句继续执行。
提示 在循环中改变 counter 的值,将会使程序代码的阅读和调试变得更加困难。
循环中可以在任何位置放置任意个 Exit For 语句,随时退出循环。 Exit For经常在条件判断之后使用,例如 If...Then,并将控制权转移到紧接在 Next 之后的语句。
可以将一个 For...Next 循环放置在另一个 For...Next 循环中,组成嵌套循环。不过在每个循环中的 counter 要使用不同的变量名。下面的体系结构是正确的:
For I = 1 To 10 For J = 1 To 10 For K = 1 To 10 ...
Next K
Next J
Next I
注意 如果省略 Next 语句中的 counter,就像 counter 存在时一样执行。但如果 Next 语句在它相对应的 For 语句之前出现,则会产生错误。
本示例使用 For...Next 语句创建一个字符串,其内容为由 0 到 9 的十个数字所组成的字符串,每个字符串之间用空格隔开。外层循环使用一个变量当作循环计数器,每循环一次,变量值减一。
Dim Words, Chars, MyString For Words = 10 To 1 Step -1 ‘
建立10
次循环。For Chars = 0 To 9 ‘
建立10
次循环。MyString = MyString & Chars ‘
将数字添加到字符串中。Next Chars ‘ Increment counter
MyString = MyString & " " ‘
添加一个空格。Next Words
标签:嵌套循环 条件判断 结构 word loop 强制退出 step 内容 until
原文地址:https://www.cnblogs.com/Daluo20200515/p/12944330.html