有没有一个例子说明这些for和while循环何时不相等?

时间:2015-10-01 03:38:07

标签: java loops

比较

for (<init stmnt> <boolean expr>; <incr stmnt>) {
   <body statements>
}

<init stmnt>;
while (<boolean expr>) {
   <body statements>
   <incr stmnt>
}

我们能找到上述两个循环不能等效的例子吗?

2 个答案:

答案 0 :(得分:3)

无论何时在循环中使用continue;语句,都不会产生相同的效果。

在for循环中,continue语句导致<incr stmnt>被执行。但是在你的while循环中,它会被跳过,因为它发生在continue;

之后

请看以下两个循环:

for (int i = 0; i < 10; i++) {
    if (i%2 == 0) {
        continue;
    }
    System.out.println(i);
}

int i = 0;
while (i < 10) {
    if (i%2 == 0) {
        continue;
    }
    System.out.println(i);
    i++;
}

for循环将打印1,3,5,7,9(中间有新行)。

while循环将永远循环,永远不会打印出来。

答案 1 :(得分:0)

当你需要重复一些东西直到给定条件为真时,通常会使用while循环。例如

{inputInvalid = true;
while(inputInvalid)
{
    //ask user for input
    invalidInput = checkValidInput();
}
}

当您需要迭代给定次数时,通常会使用for循环。这里

for(var i = 0; i < 100; i++)
{
    ...//do something for a 100 times.
}