脚本运算符

以下运算符可以在表达式中使用。

运算符 描述
() 括号
这些是用来分组操作的,所以它们会以正确的顺序执行。
“a = b (c + d)” 会先将 c 和 d 相加,然后与 b 相乘,再将结果分配给 a。如果没有括号,因为 的优先级比 + 高,所以先将 b 和 c 相乘,然后再与 d 相加。
[] 方括号 这些都是用在变量的末尾,表示对象变量的索引。索引可以是一个常量,也可以是一个局部变量。数组中的起始索引总是 0。
SENSORA[4] 表示 SENSORA 的第五个对象。在本例中,它的意思是 4 号传感器。
SENSORA[st] 表示数组中局部变量 st 所包含的对象。如果 st 包含 3,表示第四个对象。
. 点. 这是用来分隔字段的
! + - 一元运算 这些一元运算符可以在操作数前使用,以改变返回值。
如果传感器 5 标志开启,则 !SENSORA[5].FLAG 返回 0,如果传感器 5 未开启,则返回 1。
!var 如果局部变量 var 是非零,则返回 0,如果 var 为零,则返回 1。
“a = -b” 将 b 的倒数(反号)值赋给 a。
“a = -5” 将常量 -5 赋值给 a。
“a = +b” 将 b 赋值给 a。”一元+” 与 “一元-“ 意义相同,但也是默认值。
* / % 多元运算符 是乘法,/ 是除法,% 是取余。
“a = 3
b” 将 3 乘以 b 的结果赋值给 a。
“小时 = seccnt / 3600; “将 seccnt 除以 3600(1 小时,以秒为单位)的结果的整数赋值给小时。”min = (seccnt % 3600) / 60;” 将上一次操作的余数(小时内未覆盖的秒数,除以 60(以秒为单位的 1 分钟)分配给 min。”sec = (seccnt % 3600) % 60;” 将剩下的时间分配给 sec。
+ - 加法运算符 + 是加法,- 是减法。
“a=b+c-3;” 把 b 加 c 减 3 赋给 a。
< <= > >= 比较 < 表示小于,<= 表示小于或等于,> 表示大于,>= 表示大于或等于。
“a = b <= c;” 将比较结果 b 小于或等于 c 赋值给 a,如果 b 小于或等于 c,则 a 得到值 1,否则 a 得到值 0。
== != 比较(等于) == 表示等于, != 表示不等于。
“a = b != c;” 将比较 b 不等于 c 的结果赋值给 a,如果 b 不等于 c,则 a 得到值 1,否则 a 得到值 0。
& ^ | 位操作 & 是在两个运算符的所有位之间的逻辑与,| 是在两个运算符的所有位之间的逻辑或,^ 是在两个运算符的所有位之间的逻辑异或。
“a = b & 0xff” 将 b 中较低的字节分配给 a。
&& || 逻辑运算符 && 是两个操作符之间的逻辑与,|| 是两个操作符之间的逻辑或。a = b && c || d;” 分配逻辑测试的结果,如果 b 和 c 为真或 d 为真。如果 b 和 c 都为真(非零)或 d 为真(非零),则 a 得到值 1,否则 a 得到值 0。
= 赋值 这个运算符将表达式的结果向右分配给左边的变量。

下面是运算符的优先级列表。最上面一行的优先级最高(优先级)。同一级别的运算符按照关联性顺序执行。

运算符 描述
() [] . 从左到右
! + - 从右到左
* / % 从左到右
+ - 从左到右
< <= > >= == != 从左到右
& ^ | 从左到右
&& 从左到右
|| 从左到右
= 从右到左