我对使用Do Until的循环中的循环有一个快速的问题。如果满足第二个循环的标准,第一个循环是否会运行第二个循环?
例如:
Dim X
Dim Y
X = 0
Y = 0
' Loop 1
Do Until X = 20
' Loop 2
Do Until Y = 5
Y = Y + 1
Loop
X = X + 1
Loop
因此,循环1应该循环20次,每次循环它应该运行循环5 * 20次的第二个循环。它似乎不起作用。第二个循环似乎只运行了一次,其余时间都被忽略了。
答案 0 :(得分:1)
因为你的内部循环第一次运行,它会在Y = 5
时退出 - 因为你没有再次更改Y
的值,因为条件已经满足,它将不会再次运行。
请改为尝试:
Dim X
Dim Y
X = 0
Y = 0
' Loop 1
Do Until X = 20
' Loop 2
Do Until Y = 5
Y = Y + 1
Loop
Y = 0 '// reset value of Y so that inner loop will run next time around
X = X + 1
Loop
或改为使用For...To...
循环:
Dim X,Y
For X = 1 To 20
'// Do something...
For Y = 1 To 5
'// Do something 5 times
Next
Next
这是因为您声明了Y
变量范围,并在循环中为其分配了 的初始值。
答案 1 :(得分:0)
Y
到达5
第一次内循环运行,所以下一次它已经满足until y = 5
条件,所以循环永远不会再次运行
在循环之前或循环完成时重置它。
Y = 0
Do Until Y = 5