通过比较运算符可以构成逻辑表达式。比较结果始终是布尔 (BOOL) 类型。
运算符 说明 允许的数据类型
== 等于( 允许的类型:INT、REAL、CHAR、ENUM、BOOL)
<> 不等( 允许的类型:INT、REAL、CHAR、ENUM、BOOL)
> 大于 (允许的类型:INT、REAL、CHAR、ENUM)
<小于 >= 大于等于(允许的类型:INT、REAL、CHAR、ENUM)
<= 小于等于(允许的类型:INT、REAL、CHAR、ENUM)
INT、REAL 和 CHAR 的运算数组合是合法的。
允许比较数值 (INT, REAL) 和字符值 (CHAR),因为已经为每个 ASCII 字符分配了一个 ASCII 代码。该代码为数字。
BOOL 类型只允许与 BOOL 类型比较。
ENUM 类型只允许与相同的 ENUM 类型比较。
对于 REAL 值,检查相等还是不相等只有有限的意义:由于有限的浮点位数,可能有四舍五入误差。这可能导致相同的公式计算出不同的值。
示例 即使多个比较也是允许的:
...
DECL BOOL A, B
...
B= 10 < 3 ;B=FALSE
A = 10/3 == 3 ;A=TRUE
B = ((B == A) <> (10.00001 >= 10)) == TRUE ;B=TRUE
A = "F" < "Z" ;A=TRUE
...
ENUM 类型比较的示例:
DEF TEST()
ENUM color_typ orange, blue
DECL BOOL A
DECL color_typ KUKA_color, my_color
INI
KUKA_color = #orange
my_color = #orange
...
A = my_color == KUKA_color ;A=TRUE
END
例:WHILE $IN[4]==TRUE ;输入4被设置时运行