比较
for (<init stmnt> <boolean expr>; <incr stmnt>) {
<body statements>
}
到
<init stmnt>;
while (<boolean expr>) {
<body statements>
<incr stmnt>
}
我们能找到上述两个循环不能等效的例子吗?
答案 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.
}