VB 循环语句

一、Do...Loop 语句

当条件为 True 时,或直到条件变为 True 时,重复执行一个语句块中的命令。

语法

Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]

Loop

 

或者可以使用下面这种语法:

Do
[statements]
[Exit Do]
[statements]

Loop [{While | Until} condition]

Do Loop 语句的语法具有以下几个部分:

部分描述
condition 可选参数。数值表达式字符串表达式,其值为 TrueFalse。如果 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 语句。内层的 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    ' 将标志值设成 FalseExit Do    ' 退出内层循环。
        End If
    Loop
Loop Until Check = False    ' 退出外层循环。


二、While...Wend 语句

只要指定的条件为 True,则会重复执行一系列的语句

语法

While condition
[statements]

Wend

 

While...Wend 语句的语法具有以下几个部分:

部分描述
condition 必要参数。数值表达式字符串表达式,其计算结果为 TrueFalse。如果 conditionNull,则 condition 会视为 False
statements 可选参数。一条或多条语句,当条件为 True 时执行。

说明

如果 condition True,则所有的 statements 都会执行,一直执行到 Wend 语句。然后再回到 While 语句,并再一次检查 condition,如果 condition 还是为 True,则重复执行。如果不为 True,则程序会从 Wend 语句之后的语句继续执行。

While...Wend 循环也可以是多层的嵌套结构。每个 Wend 匹配最近的 While 语句。

提示 Do...Loop 语句提供了一种结构化与适应性更强的方法来执行循环。

 

While...Wend 语句示例

本示例使用 While...Wend 语句来增加计数变量的值。如果条件判断值为 True,则循环内的语句将一直执行下去。

Dim Counter
Counter = 0    ' 设置变量初值。
While Counter < 20    ' 测试计数器的值。
    Counter = Counter + 1    ' 将计数器的值加一。
Wend    '  Counter > 19 时则循环终止。
Debug.Print Counter    ' 在“立即”窗口中显示数字 20


三、For...Next 语句

以指定次数来重复执行一组语句

语法

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 语句示例

本示例使用 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
原文地址:https://www.cnblogs.com/Daluo20200515/p/12944330.html