java - 为什么这个 while 循环条件为 true

标签 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。

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

最佳答案

您必须考虑 a++ 的作用 - 首先它返回要在计算中使用的 a 的值。然后它递增a。所以 a == a++ 始终为真。相比之下,a ==++a 在返回计算中使用的值之前进行增量,这永远不会成立。

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

关于java - 为什么这个 while 循环条件为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748924/

相关文章:

c# - while 循环不会在 bool C# 上中断

C While 循环不起作用

c++ - C++ 中的二进制搜索函数返回无限循环

java - 如何在android中复制文件?

java - java中从main调用mysql连接的方法

java - 我怎样才能在这个任务中只运行一次任务

swift - while循环,找到最接近零的值

java - JComboBox 不允许我用数组启动它

java - 如何使 "jconsole"与 Websphere 6.1 一起工作?

PHP:每50个项目的循环函数