下面继续介绍在满足指定的条件时才执行相应代码块的循环结构,接着来看看Do Until循环。

Do Until循环与Do While循环的结构相似,最本质的区别在于循环条件的判断。顾名思义,在Do While循环中,当条件为真(True)时,就执行循环;而在Do Until循环中,执行循环直到条件为真(True)时,退出循环。

Do Until循环的基本语法结构如下:

Do [Until 条件语句]

[语句块]

[Exit Do]

[语句块]

Loop

或者:

Do

[语句块]

[Exit Do]

[语句块]

Loop [Until 条件语句]

说明:

按照惯例,方括号中的内容表示可选项。

条件语句可以放在循环的开始处或者结尾处。如果放在开始处,那么先评估条件,若不满足条件要求,就执行循环里面的语句;这种情况下,当始终满足条件时,就有可能一次也不会执行循环里面的语句。如果放在结尾处,则至少会执行一次循环里面的语句。

Exit Do语句表示提前退出循环。

用框图分别表示Do Until循环的两种语法形式如下:

excel图表有条件的循环设置

与上一篇文章介绍的Do While循环相比较,结构一样,只是执行循环的条件相反。

接下来,为方便对两种循环结构的理解,我们改写上一篇文章中的部分示例。

示例1:如果想要在工作表单元格区域A1:A10中依次填写数字1至10,也可以使用下面的包含Do Until循环的代码:

Sub DoUntil1()

Dim i As Integer ‘声明变量

i = 1 ‘给变量赋初始值

‘循环

Do Until i > 10

Cells(i, 1).Value = i

i = i + 1

Loop

End Sub

注意,与For-Next循环不同的是,在进入循环之前,需要先给变量i赋初始值。在循环中,还需要能够增加变量的值。

示例2:下面的代码使用Do Until循环求1至100的和,并显示结果。

Sub DoUntil2()

‘声明变量

Dim i As Integer

Dim sum As Integer

‘给变量赋初值

i = 1

sum = 0

‘循环并显示结果

Do Until i > 100

sum = sum + i

i = i + 1

Loop

MsgBox “1至100的和为:”& sum

End Sub

示例3:下面的代码使用Do Until循环求1至100之间的偶数和并显示结果。

Sub DoUntil3()

‘声明变量

Dim i As Integer

Dim sum As Integer

‘给变量赋初值

i = 1

sum = 0

‘循环并显示结果

Do Until i > 100

If (i Mod 2 = 0) Then

sum = sum + i

End If

i = i + 1

Loop

MsgBox “1至100的和为:”& sum

End Sub

发表回复