Hai*_*kel 2 java if-statement ternary-operator
示例:
if (i < n)
i++;
else
j += 2;
Run Code Online (Sandbox Code Playgroud)
我做了:
i += i < n ? 1 : j += 2;
Run Code Online (Sandbox Code Playgroud)
(但编译器显示错误)
如果可能的话,我如何将这些行写为三元运算符..谢谢......
(这是"条件"运算符.它是一个三元运算符,而现在Java只有一个,但......)
既然你并不总是改变它的值i,并且Java不允许任意表达式作为独立语句(像其他语言,如JavaScript,那么),你不能使用条件运算符重写那些,除非你给自己一个nop方法或其他东西,所以你可以在表达式上下文中使用条件.或做一些真正令人费解的事情.
也没有理由.if很清楚.
但如果你想,给出:
private static void nop(int n) {
}
Run Code Online (Sandbox Code Playgroud)
然后
nop(i < n ? (i = i + 1) : (j = j + 2));
Run Code Online (Sandbox Code Playgroud)
还有这种大规模复杂的方式:
i = i < n ? i + 1 : (j = j + 2) == j ? i : 0;
Run Code Online (Sandbox Code Playgroud)
... i如果i < n是假的话,它只会归还给自己,因为我们知道这(j = j + 2) == j将是true.
但又一次:没有理由.