【问题标题】:How can we use Ternary Operator if no else statement is used?如果不使用 else 语句,我们如何使用三元运算符?
【发布时间】:2021-01-14 17:49:18
【问题描述】:

我目前一直想知道如果只给出if 语句,我们是否可以在 JAVA 中使用三元运算符,并且没有其他部分被执行。我为此做了很多工作,但找不到。我们可以这样使用吗?

【问题讨论】:

  • 不会是三元的。
  • 可能使用两个Runnables作为三元运算符的第二和第三个操作数,然后你可以调用run在它上面运行任意多行您想要在每个分支中的代码(包括 0)。但是你应该吗?没有。

标签: java conditional-operator


【解决方案1】:

考虑以下没有 else 子句的 if 语句:

int x = 0;
if (something) {
    x = 5;
}

你必须给变量一个默认值。否则,它可能在 if 语句之后没有被初始化,所以你将无法访问它。

这可以写成三元条件表达式:

int x = something ? 5 : 0;

当然,原来的if语句可以用else子句重写:

if (something) {
    x = 5;
} else {
    x = 0;
}

【讨论】:

    【解决方案2】:

    典型的写作习惯

    if (condition) {
        x = newValue;
    } 
    

    带三元运算符的是

    x = condition ? newValue : x;
    

    这里的成语是当conditionfalse时,三进制的值为x的当前值;整个语句然后归结为x = x;,实际上什么都不做。

    您可以自己决定哪种方式更好......

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 2019-09-01
      • 2019-11-08
      • 2021-09-15
      • 2021-09-10
      • 1970-01-01
      • 2020-02-14
      • 2018-10-25
      • 2013-12-01
      相关资源
      最近更新 更多