对于第一个代码,
int i = 1;
while (i < 10)
if ((i++) % 2 == 0)
System.out.println(i);
系统输出:3 5 7 9
对于第二个代码,
int i = 1;
while (i < 10)
if ((i=i+1) % 2 == 0)
System.out.println(i);
系统输出:2 4 6 8 10
为什么两个输出不同但公式相同?
答案 0 :(得分:5)
如果您使用i++
,旧值将用于计算,之后i
的值将增加1。
对于i = i + 1
,情况恰恰相反:它将首先递增,然后才会进行计算。
如果您希望第二种情况的行为与第一种情况相同,请使用++i
:在这种情况下,i
将在计算之前首先递增。
有关详细信息和更多技术说明,请查看docs for Assignment, Arithmetic, and Unary Operators!
答案 1 :(得分:0)
i = i+1
将增加i的值,然后返回递增的值。
i++
将增加i的值,但返回我在增加之前所持有的原始值。