VBScript循環語句
使用 VBScript 循環語句
循環用於重複執行一組語句。循環可分三類:
在條件變為 False 之前重複執行語句。
在條件變為 True 之前重複執行語句。
按照指定的次數重複執行語句。
在 VBScript 中可使用下列循環語句:
Do...Loop :當 (或直到)條件為 True 時循環。
While...Wend :當條件為 True 時循環。
For...Next :指定循環次數,使用計數器重複運行語句。
For Each...Next :對於集合中的每項或數組中的每個元素,重複執行一組語句。
使用 Do 循環語句
可以使用 Do...Loop 語句多次(次數不定)運行語句塊。當條件為 True 時或條件變為 True 之前,重複執行語句塊。
當條件為 True 時重複執行語句
While 關鍵字用於檢查 Do...Loop 語句中的條件。有兩種方式檢查條件:在進入循環之前檢查條件(Do While...Loop );或者在循環至少運行完一次之後檢查條件(Do...Loop While)。
Do While...Loop 示例:
<script type="text/vbscript">
Sub ChkFirstWhile()
Dim counter, myNum
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "循環重複了 " & counter & " 次。"
End Sub
Call ChkFirstWhile
</script>
Do...Loop While 示例:
<script type="text/vbscript">
Sub ChkLastWhile()
Dim counter, myNum
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "循環重複了 " & counter & " 次。"
End Sub
Call ChkLastWhile
</script>
重複執行語句直到條件變為 True
Until 關鍵字用於檢查 Do...Loop 語句中的條件。有兩種方式檢查條件:在進入循環之前檢查條件(Do Until...Loop);或者在循環至少運行完一次之後檢查條件(Do...Loop Until)。只要條件為 False,就會進行循環。
Do Until...Loop 示例:
<script type="text/vbscript">
Sub ChkFirstUntil()
Dim counter, myNum
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "循環重複了 " & counter & " 次。"
End Sub
Call ChkFirstUntil
</script>
Do...Loop Until 示例:
<script type="text/vbscript">
Sub ChkLastUntil()
Dim counter, myNum
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "循環重複了 " & counter & " 次。"
End Sub
Call ChkLastUntil
</script>
退出循環
Exit Do 語句用於退出 Do...Loop 循環。因為通常只是在某些特殊情況下要退出循環(例如要避免死循環),所以可在 If...Then...Else 語句的 True 語句塊中使用 Exit Do 語句。如果條件為 False,循環將照常運行。
在下面的示例中,myNum 的初始值將導致死循環。If...Then...Else 語句檢查此條件,防止出現死循環。
<script type="text/vbscript">
Sub ExitExample()
Dim counter, myNum
counter = 0
myNum = 9
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
If myNum < 10 Then Exit Do
Loop
MsgBox "循環重複了 " & counter & " 次。"
End Sub
Call ExitExample
</script>
使用 While...Wend 循環語句
While...Wend 語句是為那些熟悉其用法的用戶提供的。但是由於 While...Wend 缺少靈活性,所以建議最好使用 Do...Loop 語句。
使用 For...Next 循環語句
For...Next 語句用於將語句塊運行指定的次數。在循環中使用計數器變量,該變量的值隨每一次循環增加或減少。以下是個簡單示例:
<script type="text/vbscript">
Dim i
for i = 0 to 10
document.write("Number " & i & "<br />")
next
</script>
關鍵字 Step 用於指定計數器變量每次增加或減少的值。在下面的示例中,計數器變量 j 每次加 2。循環結束後,total 的值為 2、4、6、8 和 10 的總和。
<script type="text/vbscript">
Sub TwosTotal()
Dim j, total
For j = 2 To 10 Step 2
total = total + j
Next
MsgBox "總和為 " & total & "。"
End Sub
Call TwosTotal
</script>
要使計數器變量遞減,可將 Step 設為負值。此時計數器變量的終止值必須小於起始值。在下面的示例中,計數器變量 myNum 每次減 2。循環結束後,total 的值為 16、14、12、10、8、6、4 和 2 的總和。
Sub NewTotal()
Dim myNum, total
For myNum = 16 To 2 Step -2
total = total + myNum
Next
MsgBox "總和為 " & total & "。"
End Sub
Exit For 語句用於在計數器達到其終止值之前退出 For...Next 語句。因為通常只是在某些特殊情況下(例如在發生錯誤時)要退出循環,所以可以在 If...Then...Else 語句的 True 語句塊中使用 Exit For 語句。如果條件為 False,循環將照常運行。