运算符

无论如何,你肯定需要对变量进行运算,或者判断一些逻辑关系。这就是需要运算符来进行操作。

二元算术运算符

除了大家最熟悉的加减乘除(+ - * /)之外,还有个 % 做取余操作(10 % 3 = 1)。

同时加号还用于字符串拼接。

一元算术运算符

一元算术运算符有自增(++) 和自减(--),它们可以把元素加 1 或减 1。

自增(减)运算符放在变量名前后是有区别的。放在前面为先自增(减)再运算,后面则是先运算再自增(减)

var a as int = 1;
var b as int = 1;

println(5 * a++);
println(a);

println(5 * ++b);
println(b);

打印信息:

[17:27:31.267][DONE][CLIENT][INFO] 5
[17:27:31.267][DONE][CLIENT][INFO] 2
[17:27:31.267][DONE][CLIENT][INFO] 10
[17:27:31.267][DONE][CLIENT][INFO] 2

比较运算符

名称

作用

==

检查两数的值 是否相等,如果是,则返回 true

!=

检查两数的值 是否不等,如果是,则返回 true

>

检查左边的数是否 大于 右边的数,如果是,则返回 true

<

检查左边的数是否 小于 右边的数,如果是,则返回 true

>=

检查左边的数是否 大于或等于 右边的数,如果是,则返回 true

<=

检查左边的数是否 小于或等于 右边的数,如果是,则返回 true

逻辑运算符

用于判断两个布尔值的逻辑关系

名称

作用

&&

与,左右均为 true 才会返回 true,如果左边为 false 将直接返回 false,不进行右边的运算

||

或,左右只要有一个 true 才会返回 true,如果左边为 true 将直接返回 true,不进行右边的运算

^

异或,如果左右值不一样将会返回 true,反之为 false

!

非,将一个布尔值值反转,truefalsefalsetrue

三元运算符

是一种特殊的语法:flag ? a : b

flag 是一个布尔值,如果是 true,将会返回 a,反之为 b。

位运算

ZenCode 同样支持 & | ~ >> << 等位运算操作符,具体他们的作用可以百度。

赋值运算符

先运算并赋值。a += 2; 等价于 a = a + 2; 其他算术逻辑运算符同理。

当运算发生意外……

当数学运算结果发生意外时,很有可能是你使用不同类型的数字。 比如 13 % 6.5 结果为 1,可是正确结果应该是 0 啊,究竟发生了什么? ZenScript 总是会对运算的两个数据类型进行处理,使其成为相同类型。在上述例子中,它就会将第二个数据转换,用以匹配第一个数据。 在上述例子中,计算就会处理成 13 % 6,第二个数字(双精度浮点值)就会被强制转换为第一个数字的类型(整型)。

此外 3 + "ac" 是会报错的,应为这会让 CrT 试图将右边的字符串转换成整数,而这是不合理的。你应该用 "" + 3 + "ac",先把整数 3 转换成字符串才行。

要始终检查两个变量类型是否一致,你可以使用 println 函数来将结果打印至日志中来检查数据是否正确。

最后更新于