java—为什么在执行语句“j=i+++i”之后i和j的值是2?

bprjcwpo  于 2021-07-11  发布在  Java
关注(0)|答案(3)|浏览(600)

这个问题在这里已经有答案了

增量后(i++)和增量前(i)操作符在java中是如何工作的(14个答案)
上个月关门了。
我用的代码是
int i=0,j=0;j=i
+++i;
我得到的输出是i=2和j=2
谁能解释一下这是怎么发生的!

ercv8c1e

ercv8c1e1#

表达式的计算步骤如下:
第一步:j=i+i;=>j=0+i;步骤结果i=1和j=0(后增量将更新值,但返回旧值)
第二步:j=0+++i;=>j=0+2;步进结果i=2和j=0(预增量将更新值并返回更新值)
第三步:j=0+2;=>j=2;阶跃结果i=2和j=2(直接加法并给j赋值)

ozxc1zmp

ozxc1zmp2#

i++ 将“检索”0,然后将1添加到 i . ++i 将添加1到 i 然后检索它的值。因此,这相当于 j = 0 + 2 . 它还为 i 两次。因此, i = 2 以及 j = 2 .

mzaanser

mzaanser3#

i增加i的值并返回它所持有的上一个值,i增加值并返回新值。所以在你的等式中,i将i增加1,并返回之前的值0。因为i已经增加了1,所以现在i的值是1。然后这个i将在i中递增,返回值将是新的值2。所以0+2是方程中j的值。

相关问题