VBScript 循环:Do While、Do Until、While、For Each(示例)

为什么在 VBScript 中使用循环?

循环用于反复执行相同的代码块。VBScript 循环语句有很多。其中一些 VBScript 循环语句是 Do While、Do Until、For…..Next 等等。那么,如何决定使用哪个循环语句来满足您的需要呢?

在执行循环时,您可能知道也可能不知道要执行一组指令的次数。例如,您想计算两个数字的总和十次。在这种情况下,您已经知道要重复一个代码块 10 次。假设,您想计算两个数字的总和,直到某个特定变量变为真。在这里,您不知道循环要执行多少次。因此,根据您是否知道执行次数,您可以使用不同类型的循环语句。

如果您想要重复执行一段代码块有限次,即如果您知道想要重复执行该代码块的次数,那么可以使用 For...Next 循环语句。

当您想要重复一段代码直到条件变为真或假时,使用 Do While 和 Do Until 循环语句,也就是当您不知道要执行代码块的次数时。

让我们逐一看一下这些循环语句。

VBScript执行While循环

如果您不知道需要执行代码块的次数,那么您将使用 Do While 循环。例如,当变量 x 的值小于 5 时,您想要输出消息“欢迎”。在这种情况下,将使用 Do While 循环。

<script type="text/vbscript">
Dim x
x=1
Do While x<5
document.write("Welcome.")
x=x+1
Loop
</script>

如果你尝试执行代码,你将得到如下输出:

VBScript执行While循环

该块执行四次(当 x=1,2,3、4、5 和 1 时),当 x 的值变为 XNUMX 时,循环结束。如果你忘记了语句 x=x+XNUMX,那么你的循环将变成永无止境的循环。这种循环称为 无限循环。无限循环甚至可能导致系统崩溃。因此,在使用 Do While 循环语句时,应确保某些代码能够在某一时刻使循环条件为真。

如果你一开始就将值 7 赋给变量 x,那么代码块将不会执行一次。假设你想不管条件如何都至少执行一次代码块,那么你可以使用 Do While 循环。将代码改成这样:

VBScript 示例:

<script type="text/vbscript">
Dim x
x=7
Do 
document.write("Welcome.")
x=x+1
Loop While x<5
</script>

如果你执行此代码,你将只收到一次“欢迎”消息。此处仅在执行一次循环后检查条件。

VBScript Do Until 循环

当您不知道需要执行代码块的次数时,也可以使用“Do Until”循环。Do Until 循环中的第一个代码块(Do While x<5)相当于下面给出的代码块。

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
document.write("Welcome.")
x=x+1
Loop
</script>

这将为您提供与 Do While 循环中第一个代码块相同的输出。您将看到四次欢迎消息。与 Do …..Loop While 类似,我们也必须 Do…Loop Until。

如果想在中间退出 Do While 或 Do Until 循环,则可以使用 Exit Do 语句。假设您想在上述程序中当 x 的值变为 3 时退出该块,则需要像这样编码:

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
If x=3 Then Exit Do
document.write("Welcome.")
x=x+1
Loop
</script>

如果你执行代码,你的输出将如下所示:

VBScript Do Until 循环

当 x 的值变为 3 时,退出循环。

VBScript While循环

While…Wend 循环与 Do While 循环类似,但并不常用。由于 Do While 比 While…..Wend 循环更具结构性,程序员通常使用 Do While 语句。

<script type="text/vbscript">
Dim x
x = 1   
While x < 5   
document.write("Welcome.")
x=x+1
Wend  
</script>	

输出将是

VBScript While循环

VBScript For-Next 循环

For-Next 循环可用于按特定次数执行代码块。“VBScript For 循环”指定计数器变量及其起始值和结束值。Next 语句将计数器变量加一。

For i = 1 To 5
  document.write("The number is " & i & "
")
Next

如果你执行代码,你会得到如下输出:

VBScript For-Next 循环

VBScript For-Step-Next 循环

默认情况下,计数器变量会增加 2。如果要将计数器变量增加或减少指定的值,则可以使用 For….Step….Next 循环。假设在上面的代码中,您想将计数器增加 XNUMX,则请像这样修改代码:

For i = 1 To 5 Step 2
  document.write("The number is " & i & "<br />")
Next
</script>

此代码的输出将是:

VBScript For-Step-Next 循环

如果要在中间退出 For Next 或 For Step Next 循环,则可以使用 Exit 作为语句。假设您想在上述程序中当 i 的值变为 3 时退出该块,则需要像这样编码:

<script type="text/vbscript">
For i = 1 To 5 Step 2
  If i=3 Then Exit For
  document.write("The number is " & i & "<br />")
Next
</script>

输出将是:

VBScript For-Step-Next 循环

VBScript For-Each-Next 循环

如果您想为集合中的每个项目或 VBS 数组的每个元素重复一段代码,那么您需要使用 For...Each...Next 循环。

<script type="text/vbscript">
Dim students(4)
students(0)="John"
students(1)="Hanah"
students(2)="Sarah"
students(3)="Kevin"
students(4)="Emma"

For Each x In students
  document.write(x & "<br />")
Next
</script>

上述代码的输出将是

VBScript For-Each-Next 循环

代码示例

<html>
<head>

<script type="text/vbscript">
Dim name, length
name = InputBox("Enter your name")
length = Len(name)’Gives length of the input string

For i = 1 To length
  txt = Mid(name,i,1)'Returns a specified number of characters from a string, the first parameter is the string, second parameter is the starting position and third parameter is the number of characters to return
  If txt="a" or txt="A" or txt="e" or txt="E" or txt="i" or txt="I" or txt="o" or txt="O" or txt="u" or txt="U" Then 
  counter = counter+1
  End If
Next
document.write("Hi " & name & "!!!Your name contains " & counter & " vowels.")
</script>

</head>
<body>

</body>
</html>

将文件保存为 loop.html 并保存到您喜欢的位置。现在在 Internet Explorer 中打开该文件,您将看到一个框,要求您输入您的姓名。输入一个名字,比如 Aaron,如下所示:

VBScript For-Each-Next 循环

单击“确定”后,您的输出将如下所示:

VBScript For-Each-Next 循环

总结

  • 循环语句用于反复执行相同的代码块。
  • 当您事先不知道该块要执行多少次时,您将使用 Do-While、Do-Until 和 While-Wend 循环。
  • 如果您已经知道需要执行代码块的次数,那么您将使用 For-Next、For-Next-Step 和 For-Each-Next 循环。

阅读更多 readmore