是的,它是
int count;
if (isHere)
count = getHereCount(index);
else
count = getAwayCount(index);
它称为条件运算符。许多人(错误地)称它为三元运算符,因为它是Java,C,C++以及许多其他语言中唯一的三元(三参数)运算符。但从理论上讲,可能存在另一个三元运算符,而只能有一个条件运算符。
官方名称在 Java 语言规范中给出:
§15.25 条件运算符 ?:
条件运算符使用一个表达式的布尔值来决定应计算其他两个表达式中的哪一个。? :
请注意,这两个分支都必须指向具有返回值的方法:
如果第二个或第三个操作数表达式是 void 方法的调用,则这是一个编译时错误。
事实上,根据表达式语句的语法 (§14.8),不允许条件表达式出现在任何可能出现调用 void 方法的上下文中。
因此,如果 和 是 void 方法,则无法压缩此公式:doSomething()
doSomethingElse()
if (someBool)
doSomething();
else
doSomethingElse();
进入这个:
someBool ? doSomething() : doSomethingElse();
简单的话:
booleanCondition ? executeThisPartIfBooleanConditionIsTrue : executeThisPartIfBooleanConditionIsFalse