程序总会需要根据某个条件或一系列条件的成立与否来控制程序的流程,例如判断某个数值是否大于另外一个, 又或者是判断某个字符串里是否含有指定的子串等等
条件判断只有 true (非零,真) 或者 false (零,假)两种可能结果.通常我们利用 ==, <>, >= 等比较 运算符 判断条件是否成立.
下面是 AutoIt 提供的条件语句:
三个语句功能都差不多, 具体要用哪一种决定于给定的条件.
以下是一个If 条件语句,弹出提示 消息对话框 中变量的值依据给定条件而有所不同.
$var = -20
If $var > 0 Then
MsgBox(0, "提示 1 ", "变量 $var 的值为正数!")
ElseIf $var < 0 Then
MsgBox(0, "提示 2 ", "变量 $var 的值为负数!")
Else
MsgBox(0, "提示 3 ", "变量 $var 的值为 0.")
EndIf
上面示例中条件表达式 $var > 0 计算结果为 false, 变量的值(-20)小于 0, 第一个条件失败.
脚本继续测试第二个条件.
条件表达式 $var < 0 计算结果为 true, 变量的值(-20)小于 0, 因此条件成立, If 语句执行第二个 MsgBox 语句行, 并显示 "变量 $var 的值为负数!".
Select 语句的作用也是类似的, 但通常用于判断较多条件,这比 If/Else 的语句往往更容易阅读. 例如:
$var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "提示 1 ",
"变量 $var 的值大于 1")
Case $var > 10 AND $var <= 20
MsgBox(0, "提示 2 ",
"变量 $var 的值大于 10")
Case $var > 20 AND $var <= 30
MsgBox(0, "提示 3 ",
"变量 $var 的值大于 20")
Case $var > 30 AND $var <= 40
MsgBox(0, "提示 4 ",
"变量 $var 的值大于 30")
Case $var > 40
MsgBox(0, "提示 5 ",
"变量 $var 的值大于 40")
EndSelect
Switch 语句与 Select 语句十分相似, 但一般是在同一个表达式可能存在不同值的测试情况下使用.
$var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "提示 1",
"变量 $var 的值在 1 ~ 10 之间")
Case 11 To 20
MsgBox(0, "提示 2",
"变量 $var 的值在 11 ~ 20 之间")
Case 21 To 30
MsgBox(0, "提示 3",
"变量 $var 的值在 21 ~ 30 之间")
Case 31 To 40
MsgBox(0, "提示 4",
"变量 $var 的值在 31 ~ 40 之间")
Case Else
MsgBox(0, "提示 5 ",
"变量 $var 的值大于 40 或小于等于 0")
EndSwitch
使用上述结构, 如果控制组中第一个条件被执行, 则控制组将忽略所有后续条件以及相关的语句.
provider with jb51.net (unicode) |