Else

関連するステートメントのボディが実行されなかった場合に実行する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文の一般的な使い方。この例は、次のように実行されます:

  1. If Notepad exists:
    1. Activate it
    2. 文字列 "This is a test."に続いてEnterを送信します。
  2. それ以外の場合(つまり、メモ帳が存在しない場合):
    1. 別のウィンドウをアクティブにする
    2. 座標100, 200で左クリック
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."