我已经和Java一起工作了几年,但是直到最近我还没有遇到过这个结构:
int count = isHere ? getHereCount(index) : getAwayCount(index);
这可能是一个非常简单的问题,但是有人能解释一下吗?我怎么读?我很确定我知道它是如何工作的。
正确吗?这个构造叫什么?
根据Sun Java规范,它被称为条件运算符。参见第15.25节。你对它的作用是正确的。
条件运算符?:使用一个表达式的布尔值来决定应计算其他两个表达式中的哪一个。
条件运算符在语法上是右关联的(它从右向左分组),因此?乙:丙?d:e?f:g和a的意思一样?乙:(丙?d:(e?女:g)。
ConditionalExpression:
ConditionalOrExpression
ConditionalOrExpression ? Expression : ConditionalExpression
条件运算符有三个操作数表达式;?出现在第一个和第二个表达式之间,而:出现在第二个和第三个表达式之间。
第一个表达式的类型必须是boolean或Boolean,否则会发生编译时错误。
其他人已经在合理的程度上回答了这个问题,但通常使用“三元运算符”的名称。
作为学究,我想说清楚运算符的名字是条件运算符或“条件运算符?:”。它是一个三元运算符(因为它有三个操作数),它碰巧是目前Java中唯一的三元运算符。
然而,规范很清楚地指出它的名字是条件操作符或“条件操作符”。:“要绝对不含糊。我认为用这个名字来称呼它更清楚,因为它在某种程度上表明了操作符的行为(评估一个条件),而不仅仅是它有多少操作数。
是的,它是…的简写形式
int count;
if (isHere)
count = getHereCount(index);
else
count = getAwayCount(index);
它被称为条件运算符。许多人(错误地)将其称为三元运算符,因为它是Java、C、C以及可能许多其他语言中唯一的三元(三参数)运算符。但理论上,可以有另一个三元运算符,而只能有一个条件运算符。
正式名称在Java语言规范中给出:
条件运算符?:
使用一个表达式的布尔值来决定应该计算另外两个表达式中的哪一个。
请注意,两个分支都必须指向具有返回值的方法:
第二个或第三个操作数表达式调用void方法是编译时错误。
事实上,根据表达式语句的语法(§14.8),条件表达式不允许出现在任何可能出现void方法调用的上下文中。
因此,如果< code>doSomething()和< code>doSomethingElse()是void方法,则不能压缩它:
if (someBool)
doSomething();
else
doSomethingElse();
这样做:
someBool ? doSomething() : doSomethingElse();
简单的话:
booleanCondition ? executeThisPartIfBooleanConditionIsTrue : executeThisPartIfBooleanConditionIsFalse
我一直在努力学习什么是EJB bean,这意味着他们的实例在池中被管理,等等。真的不能很好地掌握它们。 你能给我解释一下它们到底是什么吗(实际上对于一个Java程序员来说)?他们是做什么的?他们的目的是什么?为什么要真正使用它们?(为什么不坚持?)也许是一个示例应用程序? 请仅参考更新的信息,即。关于EJB的过时信息可能具有误导性。 对于EJB学习初学者,请注意: EJB基于分布式对象,这是指运行
本文向大家介绍你有了解Rxjs是什么吗?它是做什么的?相关面试题,主要包含被问及你有了解Rxjs是什么吗?它是做什么的?时的应答技巧和注意事项,需要的朋友参考一下 RxJS 是一个库,它通过使用 observable 序列来编写异步和基于事件的程序。它提供了一个核心类型 Observable,附属类型 (Observer、 Schedulers、 Subjects) 和受 [Array#extra
对数据库进行查询和修改操作的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL 语言是目前广泛使用的关系数据库标准语言,是各种数据库交互方式的基础。 著名的大型商用数据库 Oracle、DB2、Sybase、SQL Server,开源的数据库 PostgreSQL、MySQL,甚至一些小型的数据库 Access 等都支持 SQL。近些年蓬勃发展的 NoS
问题内容: 在Java中,嵌套类是什么,它们做什么? 问题答案: 它们只是其他类中的类。它们使类的层次结构成为可能,如果您将它们设为私有,则这是一种使用它们封装不在类外部公开的数据的便捷方法。Sun有一个简短的教程关于他们
问题内容: 我对中的功能有些困惑。例如,为什么下面的试验(一致地)执行它们的工作? 我找不到关于此的好的文档。 问题答案: 伪随机数生成器通过对值执行某些运算来工作。通常,此值是生成器生成的先前编号。但是,第一次使用生成器时,没有先前的值。 播种伪随机数生成器会为其提供第一个“上一个”值。每个种子值将对应于给定随机数生成器的一系列生成值。也就是说,如果两次提供相同的种子,则两次获得相同的数字序列。