close

1. ContinueLoop

和 C 語言的 Continue 相似,必須與 If-Else-Then 合用,當條件成立時,此次回圈不執行,直接執行下個回圈。以 1+3+5...+11 為例

Dim $i=0, $sum=0
For $i=1 To 11
        If(Mod($i,2)=0) Then  ; 除以2之餘數為0 時 (即偶數時) 跳過不做
                ContinueLoop
        EndIf
        $sum+=$i
Next
MsgBox(0, "title", $sum)

2. ContinueCase

必須用於 Case 類語法。由於 Case 與 Case 只會執行一次,如果在 Case 底下再加上 ContinueCase 的話就會再繼續執行下個 Case。如

$num = 0
$pre_msg = "Edis"
Switch $num
        Case 0:
                    $pre_msg &= "on"
                    ContinueCase
        Case 1:
                    $pre_msg &= "X"
        Case 2:
                    $pre_msg = "2"
        Case Else:
                    $pre_msg = "Others"
EndSwitch

由於 $num 初值給 0 ,一般而已如果沒有加上 ContinueCase 的話只會執行 Case 0,最後 $pre_msg 將變成 "Edison";但加上 ContinueCase 後,還會再多執行到 Case 1,於是最後 $pre_msg 變成 "EdisonX"

3. ExitLoop

ExitLoop 和 C 語言的 break 相似,使用時便是停止目前所在回圈。而 ExitLoop 還可以設要跳出回圈的層數,如

Dim $i=0, $j=0, $times=0
For $i=0 To 10
        For $j=0 To 10
                $times+=1
                ExitLoop(1)
        Next
Next
MsgBox(0, "title", $times)

上述之程式碼,ExitLoop(1) 指的是只往外跳出一層回圈,所以 $times 仍會被加 11 次,最後結果 $times = 11;若改為 ExitLoop(2),則會往外跳出二層回圈,最後 $times=1。使用 ExitLoop 時,若不指明引數直接調用,預設值是 1。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 edisonx 的頭像
    edisonx

    Edison.X. Blog

    edisonx 發表在 痞客邦 留言(0) 人氣()