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>
如果你尝试执行代码,你将得到如下输出:
该块执行四次(当 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>
如果你执行代码,你的输出将如下所示:
当 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 For-Next 循环
For-Next 循环可用于按特定次数执行代码块。“VBScript For 循环”指定计数器变量及其起始值和结束值。Next 语句将计数器变量加一。
For i = 1 To 5 document.write("The number is " & i & " ") 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>
此代码的输出将是:
如果要在中间退出 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-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>
上述代码的输出将是
代码示例
<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,如下所示:
单击“确定”后,您的输出将如下所示:
总结
- 循环语句用于反复执行相同的代码块。
- 当您事先不知道该块要执行多少次时,您将使用 Do-While、Do-Until 和 While-Wend 循环。
- 如果您已经知道需要执行代码块的次数,那么您将使用 For-Next、For-Next-Step 和 For-Each-Next 循环。