Autoit 入門書

Autoit の基礎 – ExitLoop のパラメータ(レベル)

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, 'すべてのループを抜けました。')

コメント