ExitLoop のパラメータ
ExitLoop は While/Do/For ループを終了する際に使用します。
この ExitLoop は、ループ内のどこでエラーが起きているのかを調べるのにとても便利です。
ExitLoop にはパラメータ(レベル)があり、抜けるループの数を指定できます。
デフォルトは 「1」つまり、現在のループを抜けます。
簡単なサンプルを書いてみましたので、参考にしてみてください。
For $s = 0 To 9; 1つ目のループ
For $i = 0 To 9; 2つ目のループ
$file = FileOpen('Autoit3') ;存在しないファイルを指定しています。
If $file = -1 Then
ExitLoop ;現在のループを抜ける。 ExitLoop 1 と同じ。
;~ ExitLoop 2 ;2つのループを抜ける。1つ目のループは実行されません。
Else
MsgBox(0, $s, 'FileOpen でエラーが出なければメッセージボックスを表示します。')
EndIf
Next
Next
MsgBox(0, 0, "$s = " & $s)
$a = 0
While 1
ConsoleWrite('Loop 1' & @CRLF)
While 2
ConsoleWrite('Loop 2' & @CRLF)
While 3
ConsoleWrite('Loop 3' & @CRLF)
While 4
$a += 1
ConsoleWrite('Loop 4' & @CRLF)
If $a = 5 Then
MsgBox(0, 0, 'ExitLoop 0')
ConsoleWrite('===ExitLoop 0===' & @CRLF)
ExitLoop 0 ;効果なし
ElseIf $a = 10 Then
MsgBox(0, 0, 'ExitLoop 1')
ConsoleWrite('===ExitLoop 1===' & @CRLF)
ExitLoop 1 ; While 4 を抜けます。
ElseIf $a = 30 Then
MsgBox(0, 0, 'ExitLoop 2')
ConsoleWrite('===ExitLoop 2===' & @CRLF)
ExitLoop 2 ; While 3、While 4 を抜けます。
ElseIf $a = 50 Then
MsgBox(0, 0, 'ExitLoop 3')
ConsoleWrite('===ExitLoop 3===' & @CRLF)
ExitLoop 3 ; While 2、While 3、While 4 を抜けます。
ElseIf $a = 70 Then
MsgBox(0, 0, 'ExitLoop 4')
ConsoleWrite('===ExitLoop 4===' & @CRLF)
ExitLoop 4 ; すべてのループを抜けます。
EndIf
WEnd
WEnd
WEnd
WEnd
MsgBox(0, 0, 'すべてのループを抜けました。')
コメント