- 版本 v1.1.15.01
- 指南和概述
- 常见问题(FAQ)
- 按字母排序的命令和函数索引
- AutoHotkey 脚本展示
- 变更和新功能
- 基本用法和语法
- 迁移到 AutoHotkey 1.1(AutoHotkey_L)
- 环境管理
- 本机代码互操作
- 文件、目录和磁盘管理
- Drive
- DriveGet
- DriveSpaceFree
- FileAppend
- FileCopy
- FileCopyDir
- FileCreateDir
- FileCreateShortcut
- FileDelete
- FileEncoding [AHK_L 42+]
- FileGetAttrib
- FileGetShortcut
- FileGetSize
- FileGetTime
- FileGetVersion
- FileInstall
- FileMove
- FileMoveDir
- FileOpen [AHK_L 42+]
- FileReadLine
- FileRead
- FileRecycle
- FileRecycleEmpty
- FileRemoveDir
- FileSelectFile
- FileSelectFolder
- FileSetAttrib
- FileSetTime
- IfExist / IfNotExist
- IniDelete
- IniRead
- IniWrite
- Loop(文件和文件夹)
- Loop(读取文件内容)
- SetWorkingDir
- SplitPath
- 流程控制
- #Include / #IncludeAgain
- {…} (区块)
- 中断
- Catch [v1.1.04+]
- 继续
- Critical
- Else
- Exit
- ExitApp
- Finally [v1.1.14+]
- For 循环 [AHK_L 59+]
- Gosub
- Goto
- If命令
- if(表达式)
- If/IfEqual/IfNotEqual/IfLess/IfLessOrEqual/IfGreater/IfGreaterOrEqual
- If var [not] between LowerBound and UpperBound
- If var is [not] type
- If var [not] in/contains value1,value2,…
- IfInString / IfNotInString
- IfMsgBox
- IfWinActive / IfWinNotActive / WinActive
- IfWinExist / IfWinNotExist / WinExist
- Loop 命令
- OnExit
- 暂停
- Reload
- Return
- SetBatchLines
- SetTimer
- Sleep
- Suspend
- Thread
- Throw [v1.1.04+]
- Try [v1.1.04+]
- Until [AHK_L 59+]
- While 循环 [v1.0.48+]
- 内置函数
- GUI、MsgBox、InputBox 及其他对话框
- 鼠标和键盘
- 鼠标和键盘
- #InstallKeybdHook
- #InstallMouseHook
- #KeyHistory
- BlockInput
- Click [v1.0.43+]
- ControlClick
- ControlSend / ControlSendRaw
- CoordMode
- GetKeyState
- KeyHistory
- KeyWait
- Input
- MouseClick
- MouseClickDrag
- MouseGetPos
- MouseMove
- Send / SendRaw / SendInput / SendPlay / SendEvent: 发送按键和点击
- SendLevel [v1.1.06+]
- SendMode [v1.0.43+]
- SetDefaultMouseSpeed
- SetKeyDelay
- SetMouseDelay
- SetCapsLockState/SetNumLockState/SetScrollLockState
- SetStoreCapslockMode
- 数学相关
- 屏幕管理
- 杂项命令
- 进程管理
- 注册表管理
- 声音命令
- 字符串管理
- 窗口管理
- 控件
- 窗口组
- #WinActivateForce
- DetectHiddenText
- DetectHiddenWindows
- SetTitleMatchMode
- SetWinDelay
- StatusBarGetText
- StatusBarWait
- WinActivate
- WinActivateBottom
- WinClose
- WinGet
- WinGetActiveStats
- WinGetActiveTitle
- WinGetClass
- WinGetPos
- WinGetText
- WinGetTitle
- WinHide
- WinKill
- WinMaximize
- WinMinimize
- WinMinimizeAll / WinMinimizeAllUndo
- WinMove
- WinRestore
- WinSet
- WinSetTitle
- WinShow
- WinWait
- WinWaitActive / WinWaitNotActive
- WinWaitClose
- #指令
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 }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论