if(表达式)

AutoHotkey

if(表达式)

指定在表达式计算结果为 TRUE 时执行的命令。

if(表达式)

备注

包含表达式的 if 语句与像 If FoundColor <> Blue 这样的传统 if 语句的区别是,它在单词“if”后的字符为左大括号。尽管通常把整个表达式包围在括号中,不过也可以写成这样:if (x > 0) and (y > 0)。此外, 如果单词 "if" 后是 函数调用 或者类似 "not" 或 "!" 的运算符, 那么左大括号可以完全省略.

如果 if 语句中表达式的计算结果为 true (即除空字符串和数值 0 以外的任何结果), 那么执行 if 语句下的行或 区块. 否则如果有相应的 ELSE, 则会跳到 else 下的行或区块执行.

当 IF 或 ELSE 结构中含有多行命令时, 这些命令必须括在 大括号 中. 不过, 如果只有一行命令从属于 IF 或 ELSE, 那么可以不用大括号. 请参阅此页面底部的例子。

One True Brace (OTB) 风格可用于表达式形式的 if 语句中 (但不能用于 传统的 if 语句). 例如:

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

与 "else" 语句支持任何类型的语句紧跟在其右边不同, if 语句仅支持 "{" 在其右边.

相关提示,if var [not] between LowerBound and UpperBound 命令判断变量是否在两个值之间,而 if var [not] in value1,value2 可以用来判断变量内容是否存在于值列表中。

相关

表达式, 赋值表达式 (:=), if var in/contains MatchList, if var between, IfInString, 区块, Else, While 循环

示例

if (A_Index > 100 or Done)
    return

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

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
}