Cog
  • 首页
  • 导论
    • 脚本
    • 指令
  • 配方
    • 物品
    • 标签
    • 原版配方修改
    • 模组配方修改
    • 通用配方修改
    • 配方材料替换
  • ZenCode
    • 数据类型
    • 运算符
    • if
    • switch
    • 循环
    • 数组
    • List
    • 映射
    • 数学函数
    • 函数
    • lambda 表达式
    • 预处理器
    • OOP
      • 自定义类
      • 拓展类
      • 空类型安全
      • 运算符重载
      • 泛型
    • 变量代理
  • 高级运用
    • Tooltip
    • 属性修改
    • 物品条件
    • 物品转换器
    • 配方函数
    • 事件
    • 全局战利品修饰器
      • 战利品修饰器
      • 方块掉落修改
      • 实体掉落修改
      • 战利品修饰器管理器
  • ContentTweaker
    • 前言
    • 资源文件
    • 物品
    • 方块
    • 流体
    • 创造标签
    • 高级运用
由 GitBook 提供支持
在本页
  • 二元算术运算符
  • 一元算术运算符
  • 比较运算符
  • 逻辑运算符
  • 三元运算符
  • 位运算
  • 赋值运算符
  • 当运算发生意外……

这有帮助吗?

  1. ZenCode

运算符

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

二元算术运算符

除了大家最熟悉的加减乘除(+ - * /)之外,还有个 % 做取余操作(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

!

非,将一个布尔值值反转,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 函数来将结果打印至日志中来检查数据是否正确。

上一页数据类型下一页if

最后更新于4年前

这有帮助吗?