运算符
无论如何,你肯定需要对变量进行运算,或者判断一些逻辑关系。这就是需要运算符来进行操作。
除了大家最熟悉的加减乘除(+ - * /)之外,还有个 % 做取余操作(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,如果左边为 false 将直接返回 false,不进行右边的运算
或,左右只要有一个 true 才会返回 true,如果左边为 true 将直接返回 true,不进行右边的运算
异或,如果左右值不一样将会返回 true,反之为 false
非,将一个布尔值值反转,true 变 false ,false 变 true
是一种特殊的语法: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 函数来将结果打印至日志中来检查数据是否正确。