逻辑块可以根据数学或逻辑表达式的条件执行不同的操作。
以下逻辑块根据条件结果执行操作。在值块或逻辑块中设置 [If] 或 [If Else] 条件。
以下逻辑块输出可用于条件的数值或逻辑值。
通信错误 (变量质量 “差”)
访问超出界限的数组元素编号
除以零。
如果逻辑块包含未定义的值,则结果未定义。但是,当作为 [逻辑条件] 使用时,它仍然可以输出结果。
'if(CONDITION){}'
在脚本的执行过程中,如果 [If] 条件未被定义,将退出该块。
'if(CONDITION){}else{}'
在脚本的执行过程中,如果 [If] 条件未被定义,逻辑会跳过 [Do] 而执行 [Else] 操作。
'SOURCE1 * SOURCE2'
运算符 |
表达式 |
描述 |
+ | X + Y | 加 |
- | X - Y | 减 |
* | X * Y | 乘 |
/ | X / Y | 除 |
% | X % Y | 除法的余数 |
& | X & Y | 返回按位 AND 运算的结果。如果 X = 0110、Y= 1100,那么结果为 0100 |
| | X | Y | 返回按位 OR 运算的结果。如果 X = 0110、Y= 1100,那么结果为 1110 |
^ | X ^ Y | 返回按位 XOR 运算的结果。如果 X = 0110、Y= 1100,那么结果为 1010 |
<< | X << Y | 左移。系统会将 X 中的位左移 Y 位。系统会保留符号。 |
>> | X >> Y | 右移。系统会将 X 中的位右移 Y 位。系统会保留符号。 |
>>> | X >>> Y | 填零右移。系统会将 X 中的位右移 Y 位,并用 0 填充移出的左侧位,因此不会保留符号。 |
数学表达式结果包含小数点。
(示例1)
在以下情况下,如果 INT1 的值为101,则结果为10.1(.1不被舍去)。
'INT1 / 10'
要舍去小数点,请使用 floor(向下取整)块。
(示例2)
在以下情况下,如果 INT1 的值为101,则结果为10。
'$Math.floor((INT1 / 10))'
此块为比较条件。在左操作数 (X) 和右操作数 (Y) 中插入一个值块,然后选择一个运算符。
'CONDITION1 == CONDITION2'
运算符 |
描述 |
示例 |
<= |
如果 X 的值小于或等于 Y 的值,则返回 true。 |
如果 X = 7 和 Y = 33,则表达式 X <= Y 为 true。 |
>= |
如果 X 的值大于或等于 Y 的值,则返回 true。 |
如果 X = 32 和 Y = 10,则表达式 X >= Y 为 true。 |
< | 如果 X 的值小于 Y 的值,则返回 true。 |
如果 X = 7 和 Y = 38,则表达式 X < Y 为 true。 |
> | 如果 X 的值大于 Y 的值,则返回 true。 |
如果 X = 27 和 Y = 14,则表达式 X > Y 为 true。 |
!= | 如果 X 的值不等于 Y 的值,则返回 true。 |
如果 X = 7 和 Y = 33,则表达式 X != Y 为 true。 |
== | 如果 X 的值等于 Y 的值,则返回 true。 |
如果 X = 5 和 Y = 5,则表达式 X == Y 为 true。 |
此块为逻辑条件。在左操作数 (X) 和右操作数 (Y) 中插入一个值块,然后选择一个运算符。
'CONDITION1 && CONDITION2'
运算符 | 描述 |
示例 | ||||||||||||||||||
&& | 逻辑 AND 如果两者均为 true,则返回 true。 |
如果 X = true, Y = false,则表达式 X && Y 为 false。 即使其中一个操作数的值可能是未定义的,但如果另一个操作数为假,产生的逻辑条件可以评估为假。请见下表。
|
||||||||||||||||||
|| | 逻辑和 返回 true,除非两个输入均为 false。 |
如果 X = true, Y = false,则表达式 X || Y 为 true。 即使其中一个操作数的值可能是未定义的,但如果另一个操作数为真,产生的逻辑条件可以评估为真。请见下表。
|
该块执行逻辑否定或位否定。在操作数 (X) 中插入一个值块,然后选择一个运算符。
'!SOURCE'
运算符 | 描述 |
示例 |
! | 逻辑 NOT 返回布尔值的倒数。 |
如果 X = false,则结果为 true。 |
˜ | 位非 返回每个位的逆值。 使用整数时,位表达式的位长度总是 32 位。 |
如果 X = 0011,那么结果为 1100。 |