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)
是一个条件,用于测试i
到3
的相等性。但是,即使将i
的值增加为i++
,为什么输出只是0
?
答案 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)
因为您在打印后增加。