Java中的减量

Java中的减量,java,Java,为什么结果等于5 因为表达式result--的值是减量之前result的值。然后将结果递减,最后将表达式的值指定给结果(覆盖递减)。非常有效的问题 您的代码不起作用,因为只有在替换=之后才执行结果--。如果使用前缀运算符,代码将正常工作: int result = 5; result = result--; System.out.println(result); 然而,这没有任何意义,因为你可以简单地写: result = --result; 有关更详细的说明,请参见。这不起

为什么结果等于5

因为表达式
result--
的值是减量之前
result
的值。然后将
结果
递减,最后将表达式的值指定给
结果
(覆盖递减)。

非常有效的问题

您的代码不起作用,因为只有在替换
=
之后才执行
结果--
。如果使用前缀运算符,代码将正常工作:

int result = 5;    
result = result--;  
System.out.println(result);  
然而,这没有任何意义,因为你可以简单地写:

result = --result;
有关更详细的说明,请参见。

这不起任何作用:

--result;
因为
result--
返回递减前的结果值(与
--result
相反,后者返回递减后的结果值)。 由于
=
右边的部分是在
=
之前执行的,因此基本上是递减结果,然后在同一行上,将结果设置为递减之前的值,从而在实践中取消它

这样你就可以写作了

   result = result--;  
但若你们想减少结果,简单地做

   result = --result;  

(或者
--result;
但是单独使用它是非常不寻常和不典型的,当您不想使用表达式的结果而只是想减量时不要这样做)

这是一个令人困惑的构造。和

result--; 
结果——是后减量。。这意味着该值首先分配给结果,然后递减

你可能会发现这很有帮助

我相信你想做的是:

int tmp = result;
result--;  
result = tmp;

更改为前缀增量以获得所需结果,或删除赋值语句:

int result = 5;     
result--; 
System.out.println(result);  
试一试

结果=--结果; 它将打印4,您将了解它们之间的区别
c--和--c

您正在使用后减量运算符。这是因为您正在编写
结果--
,而不是
--结果--
。表达式
result--
的值是
result
的副本,它是在递减之前定义的。这就是为什么它被称为后减量


定义表达式
result--
的值后,
result
递减但是:紧接着,
result
的值被
result--
表达式(
result=5
)的值覆盖,它是5。

可能在这里看到:阅读和lol,你们像野蛮人一样跳过这个问题。^^ java和其他语言一样。你可以表达一些非常愚蠢的事情,比如
x=x--
另请参见:“这是非常不寻常和非典型的,不要这样做”-这是纯金:)@maksimov:我不是英语母语,所以可能我遗漏了什么,你能解释一下吗?前缀减量有什么问题吗?:)几天前,我被告知,我写了
for(var I=A.length;I-->0;)
,这让我很难读懂代码
int result = 5;
result = --result;
System.out.println(result);