什么是Java?:运算符,它有什么作用?
我已经使用Java几年了,但是直到最近我还没有遇到过这种构造:
int count = isHere ? getHereCount(index) : getAwayCount(index);
这可能是一个非常简单的问题,但是有人可以解释吗?我该如何阅读?我很确定我知道它是如何工作的。
- 如果isHere为真,getHereCount()则称为
- 如果isHere为假,getAwayCount()则调用。
正确?这个结构叫做什么?
回答:
是的,它是
int count;if (isHere)
count = getHereCount(index);
else
count = getAwayCount(index);
它称为条件运算符。许多人(错误地)将其称为三元运算符,因为它是Java,C,C ++以及其他许多语言中唯一的三元运算符。但是理论上可以有另一个三元运算符,而只能有一个条件运算符。
官方名称在Java语言规范中给出:
条件运算符? :
使用一个表达式的布尔值来确定应评估另外两个表达式中的哪一个。
请注意,两个分支都必须导致带有返回值的方法:
第二个或第三个操作数表达式是void方法的调用是编译时错误。
实际上,根据表达式语句的语法(第14.8节),条件表达式不允许出现在可能出现调用void方法的任何上下文中。
因此,如果doSomething()
和doSomethingElse()
是无效方法,则无法压缩此方法:
if (someBool) doSomething();
else
doSomethingElse();
到这个:
someBool ? doSomething() : doSomethingElse();
简单的话:
booleanCondition ? executeThisPartIfBooleanConditionIsTrue : executeThisPartIfBooleanConditionIsFalse
以上是 什么是Java?:运算符,它有什么作用? 的全部内容, 来源链接: utcz.com/qa/429957.html