这个问题在这里已经有答案了:
增量后(i++)和增量前(i)操作符在java中是如何工作的(14个答案)上个月关门了。我用的代码是int i=0,j=0;j=i+++i;我得到的输出是i=2和j=2谁能解释一下这是怎么发生的!
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赋值)
ozxc1zmp2#
i++ 将“检索”0,然后将1添加到 i . ++i 将添加1到 i 然后检索它的值。因此,这相当于 j = 0 + 2 . 它还为 i 两次。因此, i = 2 以及 j = 2 .
i++
i
++i
j = 0 + 2
i = 2
j = 2
mzaanser3#
i增加i的值并返回它所持有的上一个值,i增加值并返回新值。所以在你的等式中,i将i增加1,并返回之前的值0。因为i已经增加了1,所以现在i的值是1。然后这个i将在i中递增,返回值将是新的值2。所以0+2是方程中j的值。
3条答案
按热度按时间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赋值)
ozxc1zmp2#
i++
将“检索”0,然后将1添加到i
.++i
将添加1到i
然后检索它的值。因此,这相当于j = 0 + 2
. 它还为i
两次。因此,i = 2
以及j = 2
.mzaanser3#
i增加i的值并返回它所持有的上一个值,i增加值并返回新值。所以在你的等式中,i将i增加1,并返回之前的值0。因为i已经增加了1,所以现在i的值是1。然后这个i将在i中递增,返回值将是新的值2。所以0+2是方程中j的值。