给出以下代码:
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.
这至少是我对此的想法。任何正确的答案?
答案 0 :(得分:4)
您必须考虑a++
的作用 - 首先它返回要在计算中使用的a
的值。然后它递增a
。所以a == a++
总是如此。相比之下,在之前执行增量的a == ++a
返回要在计算中使用的值,绝不是真的。
然后,再次增加a
。所以每个循环都会增加两次,这就是为什么你看到偶数而不是奇数。