【问题标题】:Can we write an ternary operator without a return value我们可以写一个没有返回值的三元运算符吗
【发布时间】:2014-12-03 09:38:11
【问题描述】:

我的代码中有一个三元运算符,我不想从那个三元运算符返回任何值...

我可以写一个返回值为void三元运算符 ...

例子:

int a = 10;
int b = 20;

我可以这样写吗

(a<b ? a+=b : a-=b);

显示类似

的错误
The left-hand side of an assignment must be a variable

谢谢...

【问题讨论】:

  • 但是为什么呢?运算符用于计算,语句用于流控制。
  • 你不能,你需要参考你的代码。替代方案,因为您想在a 中显示更改,请尝试此a= a&lt;b? a+=b : a-=b;

标签: java ternary-operator


【解决方案1】:

不,三元运算符本身就是一个表达式,所以它必须计算出一些东西。 a += b; 是一个声明,将它放在三元组中没有语法意义。

要么

  1. a += a &lt; b ? b : -b;

  1. 以显而易见的方式使用ifelse

在工程代码中,(1) 非常地道。

【讨论】:

    【解决方案2】:

    我可以写一个返回值为 void 的三元运算符吗

    不,你不能。

    你可以做的是:

    a = a<b ? a+b : a-b;
    

    甚至:

    a += a<b ? b : -b;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-09
      • 2020-10-11
      • 2014-09-24
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      相关资源
      最近更新 更多