我正在为一个 friend 开发游戏,在类的统计数据构建部分,我有一个部分根据类(战士、法师等)为统计数据添加基本修改器,但最终统计数据不能小于零。
目前有这个:
this.stats[i] += type[i];
if(this.stats[i] < 0) {
this.stats[i] = 0;
}
这很好,有点多余,但我想知道是否可以在一行中完成此操作。我对此表示怀疑,但我很好奇我是否错了。
类似于:
this.stats[i] += type[i] < 0 ? // etc;
但我知道这只会在将变量添加到当前 int
之前运行条件。此外,是的,仅使用整数,不使用 float 或字符串或其他任何东西,这些都在其他地方处理。
最佳答案
+=
之类的赋值返回分配的值。如果运算符优先级不符合您的要求,只需添加括号即可。
if((this.stats[i] += type[i]) < 0) this.stats[i] = 0;
但是 Math.max
可能更清晰:
this.stats[i] = Math.max(0, this.stats[i] + type[i]);
关于javascript - 条件运算符,添加后检查结果的简化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590207/