【发布时间】:2013-11-10 08:11:52
【问题描述】:
这个问题更多的是为了我的好奇心。
我经常使用 Java 的三元运算符来编写更短的代码。但是,我一直想知道,如果if 或else 条件之一为空,是否可以使用它。更详细的:
int x = some_function();
if (x > 0)
x--;
else
x++;
可以写成x = (x > 0) ? x-1 : x+1;
但是是否可以将if (x > 0) x-1; 写为带有空else 子句的三元表达式?
【问题讨论】:
-
三元运算符解析为一个值。这不是块。
-
吹毛求疵:
x = (x > 0) ? x-- : x++;不应该是x = (x > 0) ? --x : ++x;吗?甚至更好:x = (x > 0) ? x - 1 : x + 1; -
没有。让编译器处理这些语义问题。
-
Aaack。请不要编写分配给变量并在同一变量上使用后增量或前增量的代码。这让我头疼。
-
抱歉一元增量。已编辑。
标签: java ternary-operator