# if (表达式)

指定表达式得出 TRUE 时要执行的命令。

if (expression)

#### 注意

包含表达式的 if 语句不同于传统的 if 例如 If FoundColor <> Blue，其在单词 "if" 后面的字符是左括号。尽管通常情况下会将整个表达式围在圆括号内，不过也可以这样 if (x > 0) and (y > 0)。此外，如果紧跟 "if" 后的是一个函数调用或者是一个运算符例如 "not" 或 "!"，那么左括号将被整个省略掉。

如果 if 的条件语句为真(除过空字符串或数字 0 之外的其他结果)，下面的一行或者 block (语句块) 将会被执行。否则如果有相应的 ELSE，那么将执行 ELSE 下面的一行或者语句块。

当一个 IF 或 ELSE 语句有许多行时，那些行要用 braces (大括号) 围起来。然而，如果 IF 或 ELSE 语句只有一行，那么大括号就可以不用。请看本页末尾的例子。

单个正确的大括号(OTB)类型可以和表达式 if 语句一起用(但不能用在传统的 if 语句)。例如:

    if (x < y) {
        ...
    }
    if WinExist("无标题 - 记事本") {
        WinActivate
    }
    if IsDone {
        ...
    } else {
        ...
    }

不像 "else" 语句，它的右边支持紧跟任意类型的语句。if 语句的右边仅支持一个 "{"。

做个相关的提示，"if var [not] between LowerBound and UpperBound" 命令检查变量的值是否处在两个值之间，而 "if var [not] in value1,value2" 命令能检查变量的内容是否在一个值的列表中存在。

#### 相关命令

Expressions, Assign expression (:=), if var in/contains MatchList, if var between, IfInString, Blocks, Else, While-loop

#### 示例

    if (A_Index > 100 or Done)
        return

    if (A_TickCount - StartTime > 2*MaxTime + 100)
    {
        MsgBox 经过太长时间了。
        ExitApp
    }

    if (Color = "Blue" or Color = "White")
    {
        MsgBox 颜色是允许值之一。
        ExitApp
    }
    else if (Color = "Silver")
    {
        MsgBox 银色不是允许的颜色。
        return
    }
    else
    {
        MsgBox 该颜色不可识别。
        ExitApp
    }

翻译：yugi 修正：天堂之门 menk33@163.com 2008年11月14日