if语句中i ++与i = i + 1的区别是什么?

bwu*_*aop 5 java if-statement

对于第一个代码,

int i = 1;
while (i < 10)
    if ((i++) % 2 == 0)
        System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

系统输出:3 5 7 9

对于第二个代码,

int i = 1;
while (i < 10)
    if ((i=i+1) % 2 == 0)
        System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

系统输出:2 4 6 8 10

为什么两个输出不同但公式相同?

Tim*_*imo 5

如果使用i++,旧值将用于计算,之后值i将增加1.

因为i = i + 1,情况恰恰相反:它将首先递增,然后才会进行计算.

如果您希望第二种情况的行为与第一种情况的简洁,请使用++i:在这种情况下,i首先在计算之前递增.

有关更多详细信息和更多技术说明,请查看Assignment,Arithmetic和Unary Operators文档!

  • 其中`i ++`也称为_postfix incrementation_ :) (2认同)