为什么在使用三元if / else运算符时,增量运算符(++ /-)不起作用?

马特·斯特罗姆(Matt Strom):

与以下问题类似,但是我将通过更具体的查询进行扩展。同样,这也就是否使用if / else的三元样式或正常样式搁置了意见。在Java中使用三元运算符应用增量

因此,从理论上讲,以下代码段:

if (text.equals("foo"))
    data++;
else if (text.equals("bar"))
    data--;

使用三元运算符应如下所示:

data = text.equals("foo") ? data++ : text.equals("bar") ? data-- : data;

但是,在我的android(Java)应用程序中,android studio向我显示了一个警告:

从不使用在'data ++'处更改的值

同样,当我在应用程序中运行此命令时,数据变量保持不变。但是,当我将代码行更改为此:

data = text.equals("foo") ? data + 1 : text.equals("bar") ? data - 1 : data;

有效。

因此,这使我想知道在此上下文中是否允许使用++ /-运算符?有人对此有任何意见吗?

他们是 :

后递增(data++)和后递减(data--)运算符会在变量的递增/递减之前返回该变量的值,因此将其分配回该变量会取消该递增/递减。

您可以改为使用预增量和预减量(或data + 1data - 1您一样):

data = text.equals("foo") ? ++data : text.equals("bar") ? --data : data;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么三元运算符在Java中的方法参数中不起作用

为什么这种方法不起作用?Java三元运算符

为什么JSX中的三元运算符不起作用

Java三元运算符不起作用?

简单的三元运算符不起作用

Java三元运算符不起作用?

三元运算符在角度不起作用

为什么在使用“不等于”时,if运算符或运算符不起作用?

带有“OR”运算符的三元运算符不起作用?

在Ruby中,为什么在每个语句中使用puts函数时三元运算符不起作用?

为什么下面的代码使用swift的三元运算符起作用,但是如果不使用if则不起作用

如果我使用 echo,三元运算符不起作用

如果在三元运算符中使用局部变量,为什么从int到short的缩小转换不起作用

为什么在 PHP 中的 for 循环中加法不起作用而不是增量运算符?

Haskell $运算符:为什么不起作用?

为什么infix运算符很快不起作用?

为什么 OR 逻辑运算符( || )不起作用?

[Pascal]为什么“或”运算符不起作用?

字符串中的一元增量运算符不起作用

C++ 增量运算符重载作为友元函数不起作用?

C#三元运算符不起作用

|| (或)三元运算符在 JS 和 React 中不起作用

堆叠三元运算符在Angularjs表达式中不起作用

动态扩展setState在三元运算符扩展上不起作用

箭头功能在三元运算符中不起作用

继续或中断在三元运算符中不起作用

React / JSX中的三元运算符不起作用

三元运算符在映射函数中不起作用反应

三元运算符在 if 或语句中不起作用