我正在尝试使用continue语句创建while
循环。然而它似乎导致无限循环,我无法弄清楚为什么。
下面的代码似乎应该从var tasksToDo
开始,然后在途中减少到0跳过数字2。
var tasksToDo = 3
while (tasksToDo > 0) {
if (tasksToDo == 2) {
continue;
}
console.log('there are ' + tasksToDo + ' tasks');
tasksToDo--;
}
答案 0 :(得分:3)
conitnue
,将返回while循环。和tasksToDo永远不会超过2。
var tasksToDo = 3
while (tasksToDo > 0) {
if (tasksToDo == 2) {
tasksToDo--; // Should be here too.
continue;
}
console.log('there are ' + tasksToDo + ' tasks');
tasksToDo--;
}
答案 1 :(得分:1)
continue
导致循环跳过减量并重新开始。一旦tasksToDo
命中2,它将永远保持2。
答案 2 :(得分:0)
continue
让你回到循环的开头。您可能希望改为使用break
。
或者可以在 if
阻止之前减少。
答案 3 :(得分:0)
目前还不是很清楚你在做什么,但据我所知,你正试图避免在tasksToDo = 2
var tasksToDo = 3
while (tasksToDo > 0) {
if (tasksToDo != 2) {
console.log('there are ' + tasksToDo + ' tasks');
}
tasksToDo--;
}
在tasksToDo = 2
的情况下添加中断是没有意义的,因为将条件添加到while(tasksToDo > 2
)会更容易。
此处的代码可能与您的真实代码完全不同,但我可能会遗漏某些内容。
答案 4 :(得分:0)
您正在使用永久继续循环的continue;
使用break;
退出而不是continue;
答案 5 :(得分:0)
应该是这样吗?
var tasksToDo = 3
while (tasksToDo > 0) {
if (tasksToDo == 2) {
continue;
console.log('there are ' + tasksToDo + ' tasks');
}
tasksToDo--;
}
答案 6 :(得分:0)
“继续;”语句阻止在代码块中执行所有剩余的声明。
因此,循环达到“i == 2”后,“tasksDo--”递减不再执行。
这会创建一个无限循环!
使用“for”循环
var tasksToDo;
for (tasksToDo = 3; tasksToDo > 0; tasksToDo--){
if (tasksToDo == 2) { continue; }
console.log('there are ' + tasksToDo + ' tasks');
}
(for循环将减量作为第3个语句接受!)