为什么这个while循环条件为真

时间:2018-06-07 19:32:10

标签: java while-loop

给出以下代码:

public class tester {

public static void main(String args[]) {

    int a = 0;
    while(a == a++) {
        a++;
        System.out.println(a);
    }
}

}

我的问题是,为什么打印出所有偶数,从2开始?

为什么它甚至会经历while循环? 最开始的条件:如果a等于a + 1:但0不等于1.

这至少是我对此的想法。任何正确的答案?

1 个答案:

答案 0 :(得分:4)

您必须考虑a++的作用 - 首先它返回要在计算中使用的a的值。然后它递增a。所以a == a++总是如此。相比之下,在之前执行增量a == ++a返回要在计算中使用的值,绝不是真的。

然后,再次增加a。所以每个循环都会增加两次,这就是为什么你看到偶数而不是奇数。