与下面的问题类似,但我正在扩展更具体的查询。另外,这搁置了关于是否使用 if/else 的三元或正常样式的意见。 Applying increment using ternary operator in 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 向我显示了警告:
The value changed at 'data++' is never used
同样,当我在应用程序中运行它时,数据变量保持不变。但是,当我将代码行更改为:
data = text.equals("foo") ? data + 1 : text.equals("bar") ? data - 1 : data;
成功了。
所以,这让我想知道在这种情况下是否允许使用++/-- 运算符? 有人对此有任何意见吗?
最佳答案
后递增 (data++
) 和后递减 (data--
) 运算符返回变量在递增/递减之前的值,因此对其进行赋值返回变量取消增量/减量。
您可以使用预自增和预自减(或像您一样使用data + 1
和data - 1
):
data = text.equals("foo") ? ++data : text.equals("bar") ? --data : data;
关于java - 为什么在使用三元 if/else 运算符时增量运算符 (++/--) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52982014/