# if (表达式)

指定在表达式计算结果为 True(真) 时要执行的语句.

    If (表达式)
    {
        语句
    }

## 备注

如果 If 语句的表达式的计算结果为 true(即除空字符串或数字 0 以外的任何结果), 则执行其下面的行或区块. 否则, 如果存在相应的 Else 语句, 则执行将跳转到其下面的行或区块.

如果 If 拥有多行, 那么这些行必须用大括号括起来(创建一个区块). 但是, 如果只有一行属于 If, 则大括号是可选的. 请参阅此页面底部的示例.

如果表达式以小括号开头, 则 `if` 后面的空格是可选的, 例如 `if(expression)`.

可以选择使用 One True Brace(OTB) 样式. 例如:

    if (x < y) {
        ; ...
    }
    if WinExist("Untitled - Notepad") {
        WinActivate
    }
    if IsDone {
        ; ...
    } else {
        ; ...
    }

与 If 语句不同, Else 语句支持任何类型的语句紧跟在其右边.

## 相关

表达式, 三元运算符(a?b:c), 区块, Else, While-loop

## 示例

如果 A_Index 大于 100, 则返回.

    if (A_Index > 100)
        return

如果 `A_TickCount - StartTime` 的结果大于 `2*MaxTime + 100`, 显示 "Too much time has passed." 并终止脚本.

    if (A_TickCount - StartTime > 2*MaxTime + 100)
    {
        MsgBox "Too much time has passed."
        ExitApp
    }

本例执行如下:

1. 如果 Color 是单词 "Blue" 或 "White":
   1. 则显示 "The color is one of the allowed values.".
   2. 终止脚本.
2. 否则如果 Color 是单词 "Silver":
   1. 显示 "Silver is not an allowed color.".
   2. 停止进一步的检查.
3. 否则:
   1. 显示 "This color is not recognized.".
   2. 终止脚本.

    if (Color = "Blue" or Color = "White")
    {
        MsgBox "The color is one of the allowed values."
        ExitApp
    }
    else if (Color = "Silver")
    {
        MsgBox "Silver is not an allowed color."
        return
    }
    else
    {
        MsgBox "This color is not recognized."
        ExitApp
    }

单个多语句行不需要用大括号括起来.

    MyVar := 3
    if (MyVar > 2)
        MyVar++, MyVar := MyVar - 4, MyVar .= " test"
    MsgBox % MyVar  ; 报告 "0 test".

dftg