语言相关 - 条件选择语句

在我们写脚本程序的过程中总会需要根据某个条件或一组条件的成立情况来控制程序的流程,我们可能要判断某个数值是否大于另外一个,又或者是判断某个字符串里是否含有指定的子串等等.

对系统而言所有的条件判断只有 true (非零,真) 或者 false(零,假)两种可能结果.通常我们利用 ==, <>, >=等比较 运算符 来对各种对象进行比较从而建立条件.

 

在 AutoIt 可用下面两种条件语句:

这三种语句的功能差不多,具体要用哪一种决定于给定的条件.下面是一个使用If 语句的例子,根据变量的值弹出一个 对话框(Message Box) .

Local $iNumber = -20

If $iNumber > 0 Then
    MsgBox(0, "例子", "$iNumber 为正数!")
ElseIf $iNumber < 0 Then
    MsgBox(0, "例子", "$iNumber 为负数!")
Else
    MsgBox(0, "例子", "$iNumber 为零.")
EndIf

 

在上面的例子中, 表达式 $var > 0 的值为 false 因为变量小于零.因此第一个条件不成立, 开始判断第二个条件. 表达式 $var < 0 的值为 true. 这样 if 语句将会去执行第二个 MsgBox 行,并显示 "$var 为负数!".

 

选择(Select) 选择语句的使用也是类似的,但通常用于判断较多条件,这样比 If/Else 的语句往往要更清晰. 
例如:

Local $iNumber = 30

Select
    Case $iNumber > 1 And $iNumber <= 10
        MsgBox(0, "示例", "$iNumber 大于 1")

    Case $iNumber > 10 And $iNumber <= 20
        MsgBox(0, "示例", "$iNumber 大于 10")

    Case $iNumber > 20 And $iNumber <= 30
        MsgBox(0, "示例", "$iNumber 大于 20")

    Case $iNumber > 30 And $iNumber <= 40
        MsgBox(0, "示例", "$iNumber 大于 30")

    Case $iNumber > 40
        MsgBox(0, "示例", "$iNumber 大于 40")
EndSelect

 

Switch 选择语句和 Select 非常相像,但是它主要用于测试一个变量的不同范围.请看例子:

Local $iNumber = 30

Switch Int($iNumber)
    Case 1 To 10
        MsgBox(0, "例子", "$iNumber 大于 1")

    Case 11 To 20
        MsgBox(0, "例子", "$iNumber 大于 10")

    Case 21 To 30
        MsgBox(0, "例子", "$iNumber 大于 20")

    Case 31 To 40
        MsgBox(0, "例子", "$iNumber 大于 30")

    Case Else
        MsgBox(0, "例子", "$iNumber 大于 40 或者小于等于 0")

EndSwitch

With each of these structures, the first condition that is true controls which group of statements get executed. All subsequent conditions and their associated statements get ignored.