循环中的VBScript循环

时间:2016-08-30 15:55:48

标签: loops vbscript

我对使用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次的第二个循环。它似乎不起作用。第二个循环似乎只运行了一次,其余时间都被忽略了。

How to loop a loop in VBScript?没有帮助我。

2 个答案:

答案 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变量范围,并在循环中为其分配了 的初始值。

您可以在this MSDN article

中阅读有关VBScript中变量范围的更多信息

答案 1 :(得分:0)

Y到达5 第一次内循环运行,所以下一次它已经满足until y = 5条件,所以循环永远不会再次运行

在循环之前或循环完成时重置它。

Y = 0
Do Until Y = 5