为了账号安全,请及时绑定邮箱和手机立即绑定

什么是Java?:操作符被调用了,它是做什么的?

什么是Java?:操作符被调用了,它是做什么的?

慕田峪7331174 2019-05-30 16:30:43
什么是Java?:操作符被调用了,它是做什么的?我使用Java已经有几年了,但是直到最近,我还没有遇到这样的构造:int count = isHere ? getHereCount(index) : getAwayCount(index);这可能是一个很简单的问题,但有人能解释一下吗?我怎么读?我很确定我知道它是怎么工作的。如果isHere是真的,getHereCount()叫做,如果isHere是假的getAwayCount()叫做。对,是这样?这个构造叫什么?
查看完整描述

4 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

其他人在一定程度上回答了这一问题,但通常以“三值运算符”的名称回答。

由于我是一个学究的人,我想明确指出,运算符的名称是条件运算符或“条件运算符?:”。它是a三元操作符(因为它有三个操作数),而它恰好是Java中目前唯一的三元操作符。

但是,规格很清楚它的名称是条件运算符或“条件运算符?:”是绝对明确的。我认为用这个名字来称呼它更清楚,因为它在某种程度上表明了运算符的行为(评估一个条件),而不仅仅是它有多少操作数。


查看完整回答
反对 回复 2019-05-30
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

根据SunJava规范,它被称为条件运算符。见第15.25节。你对它的作用是对的。

条件运算符?:使用一个表达式的布尔值来决定应该计算另外两个表达式中的哪一个。

条件运算符是语法上的右结合算子(它从右到左分组),因此a?b:c?d:e?f:g表示与a?b:(c?d:(e?f:g)相同的意思。

ConditionalExpression:
        ConditionalOrExpression
        ConditionalOrExpression ? Expression : ConditionalExpression

条件运算符有三个操作数表达式;?出现在第一和第二表达式之间,和:出现在第二和第三表达式之间。

第一个表达式必须是布尔型或布尔型,否则会发生编译时错误.


查看完整回答
反对 回复 2019-05-30
?
交互式爱情

TA贡献1712条经验 获得超3个赞

准确地说,不完全正确:

  1. 如果这里是真的,

    结果

    退回来

  2. 其他人

    结果

    退回来

“归还”是非常重要的。意思是方法返回一个值和那个值被分配到某个地方。

还有,它是.不完全同意在语法上相当于if-否则版本。例如:

String str1,str2,str3,str4;boolean check;//...return str1 + (check ? str2 : str3) + str4;

如果用if-Other进行编码,则始终会产生更多的字节码。


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 551 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号