15.4.16 运算符
15.4.16.1 基础运算符
15.4.16.1.1 算数运算符
算数运算符包括:
运算符 |
作用 |
+ |
加 |
- |
减/负号 |
* |
乘 |
/ |
除 |
% |
取余 |
— |
自减 |
++ |
自加 |
算数运算操作符支持 bool、byte、int、double 类型数据的操作,不同类型的变量如果放在一起进行加减乘除运算,会触发隐式转换。
各种算术运算符用法示例如下:
例 1
VAR int a = 1;
VAR int b = 2;
VAR int c = -b; // 取负
VAR int ac = a * c; // 乘法
例 2
++,-- 两个运算符又称单目运算符,是指对一个操作数进行操作的运算符,RL 不区分前后自加自减:
x = n++; // n 先加1,再将 n 的值赋给 x
x = --n; // n 先减1,再将新值赋给 x
例 3
不同类型变量的进行加减乘除运算的隐式转化结果
| 类型1 | 类型2 | 结果 |
|---|---|---|
bool |
bool |
bool |
bool |
byte |
byte |
bool |
int |
int |
bool |
double |
double |
byte |
byte |
byte |
byte |
int |
int |
byte |
double |
double |
int |
int |
int |
int |
double |
double |
double |
double |
double |
15.4.16.1.2 逻辑运算符
逻辑运算符支持基本数据类型的运算,包括:
运算符 |
作用 |
&& |
逻辑与 |
II |
逻辑或 |
< |
小于 |
> |
大于 |
⇐ |
小于等于 |
>= |
大于等于 |
== |
等于 |
!= |
不等于 |
! |
取逻辑非 |
逻辑与 && 表达式为真的条件是两边的结果都为真,而逻辑或 || 为真的条件是两边只要有一个条件为真即可。
例 1
其他逻辑运算符用法示例如下:
VAR int res = 1;
while(res < 3) // 比较 res 是否小于 3
res++;
endwhile
di5 = !di6; // 取逻辑非
VAR int counter = 4;
while(di7 && di8) // 求逻辑与
if(counter == 5) // 是否相等
break;
endif
endwhile
15.4.16.1.3 赋值运算符
赋值运算符包括:
运算符 |
作用 |
= |
赋值 |
+= |
加等 |
-= |
减等 |
*= |
乘等 |
/= |
除等 |
%= |
取模等 |
各种赋值运算符用法示例如下
VAR int num1 = 3;
VAR int num2 = 4;
num1 += num2; // 等同于 num1 = num1 + num2,num1 = 7。
num1 -= num2; // 等同于 num1 = num1 - num2,num1 = -1。
num1 *= num2; // 等同于 num1 = num1 * num2,num1 = 12。
num1 /= num2; // 等同于 num1 = num1 / num2,num1 = 0。
num1 %= num2; // 等同于 num1 = num1 % num2,num1 = 3。
变量所有赋值操作,都支持隐式转换。当赋值运算左右两边的数据类型不一致时,解释器会尝试触发隐式转换以使得程序能继续运行,当转换失败时,程序会报错停止。
Bool, Byte, Int, Double 四种数据类型之间能进行转换。IO、寄存器变量属于上面四种变量的特殊形式,如果它们用于赋值操作,也可触发隐式转换。
函数的返回值如果属于上面四种类型,也可作为赋值操作的右值,进行赋值计算。
例 1
int tmp_num = 10.5; // 10
bool tmp_bool = 1; // true
tmp_bool = 0; // false
double tmp_d = 999; // 999.0
例 2
// 直接用寄存器变量修改普通变量
double tmp_num = register0;
// 寄存器变量可以直接用于条件判断
WaitUntil(register0 == 10);
例 3
int mem_ret = StrMemb(“Robotics”, 2, “aeiou”);
// StrMemb 的返回值是 bool 类型,如果一定要用int类型接收返回值,
// 控制器不会报错,而是会进行隐式转换
// true-> 1, false-> 0
15.4.16.2 运算优先级
| 优先级 | 运算符 | 使用形式 | 结合方向 |
|---|---|---|---|
1 |
( ) |
(表达式) / 函数名(形参表) |
|
. |
变量名. |
||
2 |
- |
-表达式 |
右到左 |
++ |
++变量名 / 变量名++ |
||
— |
--变量名 / 变量名-- |
||
! |
! 表达式 |
||
3 |
/ |
表达式 / 表达式 |
左到右 |
* |
表达式 * 表达式 |
||
% |
表达式 % 表达式 |
||
4 |
+ |
表达式 + 表达式 |
左到右 |
- |
表达式 - 表达式 |
||
5 |
> |
表达式 > 表达式 |
左到右 |
>= |
表达式 >= 表达式 |
||
< |
表达式 < 表达式 |
||
⇐ |
表达式 ⇐ 表达式 |
||
6 |
== |
表达式 == 表达式 |
左到右 |
!= |
表达式 != 表达式 |
||
7 |
&& |
表达式 && 表达式 |
左到右 |
8 |
|| |
表达式 || 表达式 |
左到右 |
9 |
= |
变量 = 表达式 |
右到左 |
/= |
变量 /= 表达式 |
||
*= |
变量 *= 表达式 |
||
%= |
变量 %= 表达式 |
||
+= |
变量 += 表达式 |
||
-= |
变量 -= 表达式 |