関連するステートメントのボディが実行されなかった場合に実行する1つまたは複数のステートメントを指定します。
Else Statement
Else { Statements }
Every use of Else must belong to (be associated with) an If, Catch, For, Loop or While statement above it. Elseは、ブロックを使ってその動作を変更しない限り、常にその上にある最も近い適用可能なunclaimedステートメントに属す。Else文の実行条件は、関連する文に依存します:
Elseの後には、同じ行にある他の単一のステートメントをすぐに続けることができます。これは、「else if」ラダーに最もよく使われます(下部の例を参照)。
Elseが複数の行を所有する場合、それらの行を中括弧で囲む(ブロックを作る)必要があります。ただし、1行だけがElseに属する場合は、中括弧は省略可能です。事例:
if (count > 0) ; 次の行は1行なので、中括弧は不要です。 MsgBox "Press OK to begin the process." else ; 以下の部分は1行以上からなるため、中括弧を使用する必要があります。 { WinClose "Untitled - Notepad" MsgBox "There are no items present." }
OTB(ワン・トゥルー・ブレース)スタイルは、オプションでエルゼの周りに使用することができます。事例:
if IsDone { ; ... } else if (x < y) { ; ... } else { ; ... }
ブロック、If、制御フロー文
Else文の一般的な使い方。この例は、次のように実行されます:
if WinExist("Untitled - Notepad") { WinActivate Send "This is a test.{Enter}" } else { WinActivate "Some Other Window" MouseClick "Left", 100, 200 }
Elseステートメントもどのように使うことができるのか、さまざまなスタイルを実演しています。
if (x = 1) firstFunction() else if (x = 2) ; "else if" style secondFunction() else if x = 3 { thirdFunction() Sleep 1 } else defaultFunction() ; すなわち、任意の1つの文がElseと同じ行に存在することができます。
ループの繰り返し回数が0回だった場合に、何らかのコードを実行します。
; ファイル/Internet Explorerのウィンドウ/タブを表示します。 for window in ComObject("Shell.Application").Windows MsgBox "Window #" A_Index ": " window.LocationName else MsgBox "No shell windows found."