自从我写了一段时间以来的年龄。
这样做有什么问题
int i = 0;
do {
System.out.println(i);
} while(++i == 500);
我只通过循环一次,IMO 它应该迭代 500 次。
自从我写了一段时间以来的年龄。
这样做有什么问题
int i = 0;
do {
System.out.println(i);
} while(++i == 500);
我只通过循环一次,IMO 它应该迭代 500 次。
你可能是说
while (++i < 500);
代替
while (++i == 500);
它是do-while
Java 的循环,而不是repeat-until
Pascal 的循环。它的表达式指定了继续条件,而不是退出条件。
do {
System.out.println(i);
} while(++i != 500);
由于您的情况,它只会迭代一次。while (++i == 500)
++i
将是 1 并且永远不会 500,因此它的评估结果为 false 并且不会继续。
while(++i != 500)
{
System.out.println(i);
}
是更好的方法。
在您的代码中,最初将打印 i 的值(即 0),因为它是一个 do while 并且循环内的代码应至少执行一次。
然后现在将检查条件。将检查如果 ++i 等于 500(即 1==500),则返回 false,因此循环中断。
而 (++i < 500);
将条件更改为上述语句可能会导致循环继续,直到 i 的值变为 500