循環結構
循環結構允許重復執行一行或數行代碼。VisualBasic支持的循環結構有:
1.Do...Loop
2.For...Next
3.ForEach...Next
Do...Loop
用Do循環重復執行一語句塊,且重復次數不定。Do...Loop語句有幾種演變形式,但每種都計算數值條件以決定是否繼續執行。如同If...Thencondition必須是一個數值或者值為True(非零)或False(零)的表達式。在下面的Do...Loop循環中,只要condition為True就執行statements。
DoWhilecondition
statements
Loop
當VisualBasic執行這個Do循環時會首先測試condition。如果condition為False(零),則跳過所有語句。如果condition為True(非零),則VisualBasic執行語句,然后退回到DoWhile語句再測試條件。
因此,只要condition為True或非零,循環可以隨意執行多少次。如果condition一開始便為False,則不會執行語句。例如,以下過程將計算某一目標字符串在另一字符串中出現的次數,只要發現目標串就執行循環:
FunctionCountStrings(longstring,target)
Dimposition,count
position=1
DoWhileInStr(position,longstring,target)
position=InStr(position,longstring,target)_
1
count=count 1
Loop
CountStrings=count
EndFunction
如果目標字符串未出現在另一個字符串中,則InStr返回0,而且不再執行循環。
Do...Loop語句的另一種演變形式是先執行語句,然后在每次執行后測試condition。這種形式保證statements至少執行一次:
Do
statements
LoopWhilecondition
其它兩種演變形式類似于前兩個,所不同的是,只要condition為False而不是True,它們就執行循環。
For...Next000
在不知道循環內需要執行多少次語句時,宜用Do循環。但是,在知道要執行多少次時,則最好使用For...Next循環。與Do循環不同,For循環使用一個叫做計數器的變量,每重復一次循環之后,計數器變量的值就會增加或者減少。For循環的語法如下:
Forcounter=startToend[Stepincrement]
statements
Next[counter]
參數Counter、Start、end和increment都是數值型的。
注意increment參數可正可負。如果increment為正,則Start必須小于等于end,否則不能執行循環內的語句。如果increment為負,則Start必須大于等于end,這樣才能執行循環體。如果沒有設置Step,則increment缺省值為1。
在執行For循環時,VisualBasic
1.設置counter等于start。
2.測試counter是否大于end。若是的話,則VisualBasic退出循環。(若increment為負,則VisualBasic測試counter是否小于end。)
3.執行語句。
4.counter增加一,或者增加increment(如果已指定的話)。
5.重復步驟2到步驟4。
以下代碼打印出所有有效的屏幕字體名:
EndIf
NextPFont
NextSFont
EndSub
|
新聞熱點
疑難解答