2

自从我写了一段时间以来的年龄。

这样做有什么问题

int i = 0;
    do { 
        System.out.println(i);
    } while(++i == 500);

我只通过循环一次,IMO 它应该迭代 500 次。

4

5 回答 5

21

你可能是说

while (++i < 500);

代替

while (++i == 500);
于 2012-05-31T13:05:26.957 回答
14

它是do-whileJava 的循环,而不是repeat-untilPascal 的循环。它的表达式指定了继续条件,而不是退出条件

do { 
    System.out.println(i);
} while(++i != 500);
于 2012-05-31T13:07:08.193 回答
1

由于您的情况,它只会迭代一次。while (++i == 500) ++i将是 1 并且永远不会 500,因此它的评估结果为 false 并且不会继续。

于 2012-05-31T13:07:40.297 回答
0
while(++i != 500)
{
    System.out.println(i);
}

是更好的方法。

于 2013-04-17T20:25:38.350 回答
0

在您的代码中,最初将打印 i 的值(即 0),因为它是一个 do while 并且循环内的代码应至少执行一次。
然后现在将检查条件。将检查如果 ++i 等于 500(即 1==500),则返回 false,因此循环中断。

而 (++i < 500);

将条件更改为上述语句可能会导致循环继续,直到 i 的值变为 500

于 2014-08-14T11:10:39.967 回答