Else

指定 If 语句的计算结果为 false 时, 要执行的一个或多个语句.

Else 语句
Else
{
    语句
}

备注

Else 的每次使用都必须附属于(与之关联的) 其上方的 If 语句. 除非使用区块来改变该行为, 否则 Else 始终附属于其上方最近的且无主的 If 语句.

Else 可以在同一行上紧跟着任何其他的单个语句. 这通常用于 "else if" 梯形结构(请参阅底部的例子).

如果 Else 拥有多行, 那么这些行必须用大括号括起来(创建一个区块). 但是, 如果只有一行属于 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 语句的常见用法. 本例执行如下:

  1. 如果记事本存在:
    1. 激活它
    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 语句的不同风格. 请注意 IfEqual 将被淘汰, 通常应避免使用.

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
}