示例:
if (i < n)
i++;
else
j += 2;
我做到了:
i += i < n ? 1 : j += 2;
(但编译器显示错误)
如果可能的话,我如何将这些行写为三元运算符.. 谢谢...
最佳答案
(这是“条件”运算符。它是一个三元运算符,目前 Java 只有一个,但是...)
因为您并不总是更改 i
的值,并且 Java 不允许任意表达式作为独立语句(就像其他一些语言,例如 JavaScript 一样),您不能使用条件运算符重写这些表达式,除非您给自己一个 nop
方法或其他东西,以便您可以在表达式上下文中使用条件。或者做一些非常复杂的事情。
也没有理由这样做。 if
很清楚。
但是如果你愿意的话,给出:
private static void nop(int n) {
}
然后
nop(i < n ? (i = i + 1) : (j = j + 2));
还有一种非常复杂的方法:
i = i < n ? i + 1 : (j = j + 2) == j ? i : 0;
...它只是分配 i
返回自身如果 i < n
是假的,因为我们知道 (j = j + 2) == j
将是true
.
但再次强调:没有理由这样做。
关于java - 是否可以将这两行写为三元运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48251453/