Else

AutoHotKey

Else

指定当 IF 语句计算结果为 FALSE 时执行的命令.包含多个命令时,需要把它们括在区块(大括号)中.

Else

备注

每次使用 ELSE 都必须附属于 (与之关联) 它上面的 IF 语句. ELSE总是附属于在它上面且离它最近的无主IF语句,不过可以使用区块改变这种行为.

ELSE的同一行中可以紧跟着其他任何的单个命令.这种形式最常使用于 "else if" 梯形结构 (请参阅底部的例子).

IF 或 ELSE 结构中含有多行命令时, 这些命令必须括在大括号中. 不过, 如果只有一行命令从属于 IF 或 ELSE, 那么可以不用大括号. 例如:

if count > 0  ; 下一行可以不需要使用大括号括住, 因为它只有一行.
    MsgBox Press OK to begin the process.
else  ; 下面这部分必须使用大括号括住, 因为它含有多行.
{
    WinClose Untitled - Notepad
    MsgBox There are no items present.
}

One True Brace (OTB) 风格 可以用于 "else" 前后. 例如:

if IsDone {
    ...
} else if (x < y) {
    ...
} else {
    ...
}

相关

请参阅 区块. 还有, 每种 IF 命令都可以使用 ELSE, 包括 IfWinActive, IfWinExist, IfMsgBox, IfInString, IfBetween, IfIn, IFIF (表达式).

示例

IfWinExist, Untitled - Notepad
{
    WinActivate
    Send This is a test.{Enter}
}
else
{
    WinActivate, Some Other Window
    MouseClick, left, 100, 200
}

if x = 1
    Gosub, a1
else if x = 2 ; "else if" 类型
    Gosub, a2
else IfEqual, x, 3 ; 可选类型
{
    Gosub, a3
    Sleep, 1
}
else Gosub, a4  ; 即任何单个命令都可以和 ELSE 放在同一行.
 
; 这样也行:
IfEqual, y, 1, Gosub, b1
else {
    Sleep, 1
    Gosub, b2
}