7

这个问题更多的是出于我的好奇心。

我经常使用 Java 的三元运算符来编写更短的代码。if但是,我一直在想,如果orelse条件之一为空,是否可以使用它。详细信息:

int x = some_function();
if (x > 0)
    x--;
else
    x++;

可以写成x = (x > 0) ? x-1 : x+1;

但是可以写成if (x > 0) x-1;带有空else子句的三元表达式吗?

4

1 回答 1

15

但是可以写成if (x > 0) x--;带有空 else 子句的三元表达式吗?

不,条件运算符需要三个操作数。如果你愿意,你可以这样做:

x = (x > 0) ? x - 1 : x;

...但是(主观上)我认为清晰度会受到影响。

于 2013-10-30T15:51:45.600 回答