int result = 5;
result = result--;
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
为什么结果等于5?
Den*_*ret 13
这没有任何作用:
result = result--;
Run Code Online (Sandbox Code Playgroud)
因为result--在递减之前返回结果的值(相反,--result在递减之后返回结果的值).并且由于右边的部分在=之前执行=,你基本上减少结果然后在同一行上将结果设置为它在减量之前的值,从而在实践中取消它.
所以你可以写
result = --result;
Run Code Online (Sandbox Code Playgroud)
但是如果你想减少结果,那就干脆做
result--;
Run Code Online (Sandbox Code Playgroud)
(或者--result;单独使用它是非常不寻常和非典型的,当你不想使用表达式的结果而只是想减少时不要这样做)
非常有效的问题!
您的代码无效,因为result--仅在替换之后才执行=。如果使用前缀运算符,您的代码将起作用:
result = --result;
Run Code Online (Sandbox Code Playgroud)
但这没有任何意义,因为您可以简单地编写:
--result;
Run Code Online (Sandbox Code Playgroud)
有关更全面的说明,请参见有关前缀/后缀运算符如何在Java上工作的问题/解答。
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |