經(jīng)常地,當(dāng)編寫代碼時(shí),我們希望將一段代碼執(zhí)行若干次,我們可以在代碼中使用循環(huán)語句來完成這項(xiàng)工作。
循環(huán)可分為三類:一類在條件變?yōu)?False 之前重復(fù)執(zhí)行語句,一類在條件變?yōu)?True 之前重復(fù)執(zhí)行語句,另一類按照指定的次數(shù)重復(fù)執(zhí)行語句。
For...Next:指定循環(huán)次數(shù),使用計(jì)數(shù)器重復(fù)運(yùn)行語句
Do...Loop:當(dāng)條件為 true 或者直到條件為 true 時(shí),運(yùn)行循環(huán)
While…Wend:當(dāng)條件為True時(shí)循環(huán)
For Each...Next:對于集合中的每項(xiàng)或數(shù)組中的每個(gè)元素,重復(fù)執(zhí)行一組語句
For...Next 語句
指定循環(huán)次數(shù),使用計(jì)數(shù)器重復(fù)運(yùn)行語句,語法結(jié)構(gòu)如下:
For counter = start To end [Step step] 'counter 用做循環(huán)計(jì)數(shù)器的數(shù)值變量, start:counter的初值, end:counter的終值, step:counter的步長
[statements]
[Exit For] '退出循環(huán)
[statements]
Next
Dim Count:Count = 0 '定義一個(gè)變量,并賦值為0
For i = 1 To 10 '循環(huán)10次 ,F(xiàn)or 語句規(guī)定計(jì)數(shù)變量以及它的開始值和結(jié)束值
Count = Count + 1
Next 'Next 語句會以 1 作為步長來遞增變量i
MsgBox Count '輸出10 '
退出循環(huán):Exit For 語句用于在計(jì)數(shù)器達(dá)到其終止值之前退出 For...Next 語句。
Dim Count:Count = 0 '定義一個(gè)變量,并賦值為0
For i = 1 To 10 step 2 '循環(huán)10次,步長為2,通過使用 Step 關(guān)鍵詞,我們可以規(guī)定計(jì)數(shù)變量遞增或遞減的步進(jìn)值
Count = Count + 1
If Count = 3 Then '當(dāng)變量Count的值為3時(shí),退出當(dāng)前循環(huán)
Exit For '退出循環(huán)
End If
Next
MsgBox Count '輸出3
指定循環(huán)次數(shù),使用計(jì)數(shù)器重復(fù)運(yùn)行語句,語法結(jié)構(gòu)如下:
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next
主要參數(shù):
counter:用做循環(huán)計(jì)數(shù)器的數(shù)值變量。這個(gè)變量不能是數(shù)組元素或用戶自定義類型的元素。
start:counter的初值。
end:counter的終值。
step:counter的步長。如果沒有指定,則step的默認(rèn)值為1。
具體示例代碼如下:
For…Next
Dim Count:Count = 0 '定義一個(gè)變量,并賦值為0
For i = 1 To 10 '循環(huán)10次
Count = Count + 1
Next
MsgBox Count '輸出10
Step設(shè)置計(jì)數(shù)器循環(huán)步長
Dim Count:Count = 0 '定義一個(gè)變量,并賦值為0
For i = 1 To 10 Step 2 '設(shè)置計(jì)數(shù)器步長為2,循環(huán)5次
Count = Count + 1
Next
MsgBox Count '輸出5
退出循環(huán)
Exit For 語句用于在計(jì)數(shù)器達(dá)到其終止值之前退出 For...Next 語句。因?yàn)橥ǔV皇窃谀承┨厥馇闆r下(例如在發(fā)生錯(cuò)誤時(shí))要退出循環(huán),所以可以在 If...Then...Else 語句的 True 語句塊中使用 Exit For 語句。如果條件為 False,循環(huán)將照常運(yùn)行。
Dim Count:Count = 0 '定義一個(gè)變量,并賦值為0
For i = 1 To 10 '循環(huán)10次
Count = Count + 1
If Count = 5 Then '當(dāng)變量Count的值為5時(shí),退出當(dāng)前循環(huán)
Exit For
End If
Next
MsgBox Count '輸出5
Do 循環(huán) 當(dāng)(或直到)條件為True時(shí)循環(huán)
重復(fù)執(zhí)行語句直到條件變?yōu)門rue
Dim Count:Count = 5 '定義一個(gè)變量
Do Until Count = 0 '直到Count變量為0時(shí),否則一直循環(huán)
MsgBox Count
Count = Count -1
Loop
MsgBox "循環(huán)結(jié)束"
Dim Count:Count = 5 '定義一個(gè)變量
Do
MsgBox Count
Count = Count -1
Loop Until Count = 0 '直到Count變量為0時(shí),否則一直循環(huán)
MsgBox "循環(huán)結(jié)束"
當(dāng)條件變?yōu)門rue之前重復(fù)執(zhí)行某語句塊
Dim Count:Count = 5 '定義一個(gè)變量
Do While Count > 0 '當(dāng)Count變量為0時(shí),停止循環(huán)
MsgBox Count
Count = Count -1
Loop
MsgBox "循環(huán)結(jié)束"
Dim Count:Count = 5 '定義一個(gè)變量
Do
MsgBox Count
Count = Count -1
Loop While Count > 0 '當(dāng)Count變量為0時(shí),停止循環(huán)
MsgBox "循環(huán)結(jié)束"
Exit Do 語句用于退出 Do...Loop 循環(huán)
Dim Count:Count = 5 '定義一個(gè)變量
Do While Count > 0 '當(dāng)Count變量為0時(shí),停止循環(huán)
MsgBox Count
Count = Count -1
If Count = 2 Then '判斷Count變量值是否為2,如果是則退出循環(huán)
Exit Do
End If
Loop
MsgBox "循環(huán)結(jié)束"
While…Wend 當(dāng)條件為True時(shí)循環(huán)
Dim Count:Count = 5 '定義一個(gè)變量
While Count > 0 '當(dāng)Count變量值不等于0,一直循環(huán)
MsgBox Count
Count = Count -1
Wend
MsgBox "循環(huán)結(jié)束"
While…Wend 沒有Exit語句,從頭一直循環(huán)到尾,若要在中途退出,則需用Do…Loop語句
For Each...Next 語句
For Each...Next 不是將語句運(yùn)行指定的次數(shù),而是對于數(shù)組中的每個(gè)元素或?qū)ο蠹现械拿恳豁?xiàng)重復(fù)一組語句。這在不知道集合中元素的數(shù)目時(shí)非常有用。
Dim Dics '定義一個(gè)變量
Set Dics = CreateObject("Scripting.Dictionary") '定義一個(gè)Dictionary對象
Dics.Add "0", "Athens" '為Dictionary對象賦值
Dics.Add "1", "Belgrade"
Dics.Add "2", "Cairo"
For Each Dic in Dics
MsgBox Dics.Item(Dic) '循環(huán)遍歷,且輸出Dictionary鍵值
Next