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