逻辑

逻辑块可以根据数学或逻辑表达式的条件执行不同的操作。

以下逻辑块根据条件结果执行操作。在值块或逻辑块中设置 [If] 或 [If Else] 条件。

以下逻辑块输出可用于条件的数值或逻辑值。

注:

  • 当操作数的值出现以下情况之一时,该值为未定义:
    • 通信错误 (变量质量 “差”)

    • 访问超出界限的数组元素编号

    • 除以零。

  • 如果逻辑块包含未定义的值,则结果未定义。但是,当作为 [逻辑条件] 使用时,它仍然可以输出结果。

逻辑条件

If

当 [If] 条件的计算结果为 true 时此块执行 [Do] 下的操作。
文本

'if(CONDITION){}'

注: 在脚本的执行过程中,如果 [If] 条件未被定义,将退出该块。

If Else

当 [If] 条件的计算结果为 true 时,此块执行 [Do] 下的操作;当 [If] 条件的计算结果为 false 时,执行 [Else] 下的操作。
文本

'if(CONDITION){}else{}'

注: 在脚本的执行过程中,如果 [If] 条件未被定义,逻辑会跳过 [Do] 而执行 [Else] 操作。

Math

此块是数学表达式。在左操作数 (X) 和右操作数 (Y) 中插入值块,然后选择运算符。
文本

'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 填充移出的左侧位,因此不会保留符号。

注:

  • AND/OR/XOR总是返回32位无符整型值。
  • 当输入值为负时,位移位表达式返回32位整型值。
  • 当输入值为正数时,位移位表达式返回32位无符整型值。

注:

数学表达式结果包含小数点。

(示例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。

注: 即使其中一个操作数的值可能是未定义的,但如果另一个操作数为假,产生的逻辑条件可以评估为假。请见下表。

X Y 结果
未定义 未定义 未定义
未定义 true 未定义
未定义 false false
true 未定义 未定义
false 未定义 false
||

逻辑和

返回 true,除非两个输入均为 false。

如果 X = true, Y = false,则表达式 X || Y 为 true。

注: 即使其中一个操作数的值可能是未定义的,但如果另一个操作数为真,产生的逻辑条件可以评估为真。请见下表。

X Y 结果
未定义 未定义 未定义
未定义 true true
未定义 false 未定义
true 未定义

true

false 未定义 未定义

Not

该块执行逻辑否定或位否定。在操作数 (X) 中插入一个值块,然后选择一个运算符。

文本

'!SOURCE'

运算符

描述

示例
!

逻辑 NOT

返回布尔值的倒数。

如果 X = false,则结果为 true。
˜

位非

返回每个位的逆值。

注:使用整数时,位表达式的位长度总是 32 位。

如果 X = 0011,那么结果为 1100。