【问题标题】:what does "0" stand for in conditional operator? [duplicate]条件运算符中的“0”代表什么? [复制]
【发布时间】:2018-05-20 13:28:21
【问题描述】:

考虑以下代码:

  i = (i == array.length-1) ? 0 : i + 1;

据我了解,条件运算符的工作原理如下:

booleanCondition ? executeThisPartIfBooleanConditionIsTrue : executeThisPartIfBooleanConditionIsFalse 

0 执行什么?

【问题讨论】:

  • if(i == array.length-1) { i = 0; } else { i = i + 1; }
  • 请贴出完整代码
  • 不太清楚你的问题是什么——你能详细说明一下吗?
  • ( condition) ? result for true : result for false ... 产生一个值。这就是全部。
  • 这与执行无关。三元运算符计算一个。两个不同的“分支”代表根据条件返回的表达式

标签: java


【解决方案1】:

我不认为“阳性条件测试结果”真的有正式名称。

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

?:三进制(简写为 if-then-else 语句)

使用布尔示例

isConditionTrue = 1 == 2 ? true : false;

在你的例子中

i = (i == array.length-1) ? 0 : i + 1;

结果与

相同
if (i == array.length-1)
{i= 0 ;}
else {i = i + 1;}

【讨论】:

  • 尽管投了反对票,但我坚持我的回答“它确实没有正式名称”作为肯定的条件结果。
【解决方案2】:

这被称为 Elvis 运算符(请参阅 [https://en.wikipedia.org/wiki/Elvis_operator])并给出以下示例:

x = A ? B : C;

...这意味着如果 A 被评估为“真”,则 x 被分配值 B,否则它被分配值 C。

在您的示例中,这意味着如果“i==array.length-1”则“i”设置为“0”,否则“i”设置为“i+1”。

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 2013-02-20
    • 2013-02-25
    • 2011-08-19
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    相关资源
    最近更新 更多