语言参考- 运算符

首页  后退  前进

AutoIt 支持以下赋值符号, 数学运算, 比较和逻辑运算符.

 

运算符

描 述

 

    赋值操作

=

给变量赋值. 例如 $vVar = 5     (分配数值 5 到变量 $vVar)

+=

加法赋值. 例如 $vVar += 1     (添加 1 到变量 $vVar)

-=

减法赋值.

*=

乘法赋值.

/=

除法赋值.

&

串联/连接两个字符串. 例如 "one" & 10    (结果等于 "one10")

&=

串联赋值. 例如: $vVar = "one", 然后 $vVar &= 10    (变量 $vVar 现在等于 "one10")

 

    数学运算符

+

两个数相加. 例如: 10 + 20    (结果等于 30)

-

两个数相减. 例如: 20 - 10    (结果等于 10)

*

两个数相乘. 例如: 20 * 10    (结果等于 200)

/

两个数相除. 例如: 20 / 10    (结果等于 2)

^

幂运算. 例如: 2 ^ 4    (结果等于 16)

 

    比较运算符 (用于字符串时不区分大小写, 但 == 除外.)

=

判断两个值是否相等. 例如: If $var = 5 Then    (如果 $vVar 等于 5, 则为 true). 比较字符串时 不区分大小写.

==

判断两个 字符串 是否相等. 区分大小写. 如果左, 右值不是字符串, 则必须转换为字符串. 仅用于需要区分大小写的字符串比较.

<>

Tests判断两个值是否不相等. 比较字符串时不区分大小写 要做一个区分大小写的不相等比较, 则使用 Not ("string1" == "string2")

>

判断左值是否大于右值. 字符串按字典顺序(lexicographically)进行比较, 即使字符串的内容是数字也如此.

>=

判断左值是否大于或等于右值. 字符串按字典顺序(lexicographically)进行比较, 即使字符串的内容是数字也如此.

<

判断左值是否小于右值. 字符串按字典顺序(lexicographically)进行比较, 即使字符串的内容是数字也如此.

<=

判断左值是否小于或等于右值. 字符串按字典顺序(lexicographically)进行比较, 即使字符串的内容是数字也如此.

 

    逻辑运算符

And

逻辑 And(与) 运算. 例如: If $vVar = 5 And $vVar2 > 6 Then    (如果变量 $vVar 的值为 5 并且 变量 $vVar2 的值大于 6 则条件成立--True).

Or

逻辑 Or(或) 运算. 例如: If $vVar = 5 Or $vVar2 > 6 Then    (如果变量 $vVar 的值为 5 或者 变量 $vVar2 的值大于 6 则条件成立--True).

Not

逻辑 Not(非) 运算. 例如: Not 1    (不是 1, 则条件不成立--False).

 

    条件运算符

? :

依据条件选择表达式. 例如: $condition ? $expression1 : $expression2    (如果 $condition 为 True 则 $expression1 成立;   否则如果 $condition 为 False 则 $expression2 成立) 参考 Ternary 运算符的示例.

 

     当表达式内含有多个运算符时, 其运算的先后顺序由 运算符优先级 控制. AutoIt 运算符的优先级如下所示. 处于同一优先级的两种运算符, 则按 左到右的顺序运算.

最高到最低优先级的顺序:

  Not

  ^

   * /

   + -

   &

   < > <= >= = <> ==

  And Or

 

 

例如: 2 + 4 * 10 运算结果为 42, 运算顺序如下:

  4 * 10    (equals 40)

  2 + 40    (equals 42)

乘号 * 拥有比加号 + 更高的优先级. 因此乘法运算发生在加法运算之前.

 

可以使用括号强制先计算表达式的一部分.

例如: (2 + 4) * 10 运算结果为 60.

 

当使用逻辑运算符 AND, Or 时, 请注意下面的情况:

例如: If MyFunc1() Or MyFunc2() Then     (如果 MyFunc1() 返回 true, 则 If 语句不会继续调用 MyFunc2())

例如: If MyFunc1() And MyFunc2() Then    (如果MyFunc1() 返回 false, 则 If 语句不会继续调用 MyFunc2())

 

       注意: 需要谨慎比较混合数据类型, 除非使用 == 区分大小写的字符串使用运算符, 混合比较通常按数字顺序进行. 大多数字符串将被评估为 0, 这样的结果可能不会是一个预期结果. 建议在使用 数字/字符串 比较之前, 先强制比较项目为相同的数据类型.

----------------------------------------