给出以下代码:
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。
这至少是我对此的想法。有正确答案吗?
最佳答案
您必须考虑 a++
的作用 - 首先它返回要在计算中使用的 a
的值。然后它递增a
。所以 a == a++
始终为真。相比之下,a ==++a
在返回计算中使用的值之前进行增量,这永远不会成立。
然后,您可以再次增加a
。因此,每个循环都会增加两次,这就是为什么您看到的是偶数而不是奇数。
关于java - 为什么这个 while 循环条件为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748924/