迭代停止在零

时间:2014-03-20 14:07:25

标签: java do-while

public class Main {
    public static void main(String [] args) {
        int i = 0;
        do {
           System.out.println(i); 
           i++;
        } while (i==3);
    }
}

// Outputs 0

为什么迭代停止在零? while(i==3)是一个条件,用于测试i3的相等性。但是,即使将i的值增加为i++,为什么输出只是0

3 个答案:

答案 0 :(得分:7)

因为它会打印i 0,然后会增加它,并且自3 != 1以来不会循环:

do {
    System.out.println(i); //i is 0, will print 0
    i++;                   //i is now 1
} while (i==3);            //false

阅读The while and do-while Statements以更好地了解do-while循环的工作原理。

我小心翼翼地假设您打算写while(i != 3);,如果是这样的话,您的程序将循环显示0 1 2。

答案 1 :(得分:3)

你的病情是i!=3。更改为while(i!=3)。你错误地把错误的条件放在了while循环中。你已经说过只有当i==3退出循环时才循环。所以你需要把它改成

  do {
       System.out.println(i); 
       i++;
    } while (i!=3);

希望这澄清!

答案 2 :(得分:-1)

因为您在打印后增加。