当前位置: 首页 > 面试题库 >

如何理解java三元运算符 : ? ?

赵经国
2023-03-14
问题内容

如何理解java三元运算符 : ? ?


问题答案:

是的,它是的简写形式

int count;
if (isHere)
    count = getHereCount(index);
else
    count = getAwayCount(index);

它称为条件运算符。许多人(错误地)将其称为三元运算符,因为它是Java,C,C ++以及可能还有许多其他语言中唯一的三元运算符。但是理论上可以有另一个三元运算符,而只能有一个条件运算符。

官方名称在Java语言规范中给出:

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

请注意,两个分支都必须导致带有返回值的方法:

第二个操作数表达式或第三个操作数表达式调用void方法都是编译时错误。

因此,如果doSomething()doSomethingElse()是无效方法,则无法压缩此方法:

if (someBool)
    doSomething();
else
    doSomethingElse();

到这个:

someBool ? doSomething() : doSomethingElse();

简单的话:

booleanCondition ? executeThisPartIfBooleanConditionIsTrue : executeThisPartIfBooleanConditionIsFalse


 类似资料:
  • 问题内容: 是否可以更改此: …对三元运算符? 问题答案: 好吧,中的行为就像这样…… …另一种看待它的方式… 你的问题有点含糊,我们必须在这里假设。 如果(且仅当)声明了一个返回值(,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点… 如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。 请发布更多代码以清除所有问题 尽管

  • 问题内容: 有人可以解释为什么这样的代码吗? 产生以下编译器错误: 不兼容的条件操作数类型ArrayList和HashSet 由于我不明白的原因,以下内容解决了该问题 我正在使用Java 1.4。 问题答案: 这是1.4 中的 错误 ,并已根据bugreport 5080917 进行了修复。 评估 这是一个错误。 xxxxx @ xxxxx 2004-07-30

  • 有没有办法用三元运算来实现这个。我对三进制很陌生,也许你可以指导我。 这个好像不行。

  • 模板可以支持三元运算符,如: {$status?'发布':'下线'} {$vo.status?'发布':'下线'} {$vo['status']?'发布':'下线'} 支持条件判断表达式: {$a==$b ? 'yes' : 'no'} 条件运算符可以是==、===、!=、!==、>=、<=

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1802

  • 模板可以支持三元运算符,如: {$status?'发布':'下线'} {$vo.status?'发布':'下线'} {$vo['status']?'发布':'下线'} 支持条件判断表达式: {$a==$b ? 'yes' : 'no'} 条件运算符可以是==、===、!=、!==、>=、<=