为什么这个 while 语句会创建一个无限循环?
Why is this while statement creating an infinite loop?
如果没有 if 语句,这个循环工作正常,但是一旦我添加 if 语句,它就会变成一个无限循环 - 为什么?根据我的理解,continue 应该让循环跳过一次迭代,然后像往常一样 运行?
let num=0;
while(num<10){
if(num===4){console.log("skipping "+num);
continue;
}
console.log(num++);
}
您还需要在 if
块中递增 num
。如果在 if 语句之后没有它,它永远不会到达 num++
并且您永远不会更改 num
的值,因此它保持 4 并且每次都进入 if
。您可以在 if
语句中添加 ++
。
let num = 0;
while(num < 10) {
if(++num === 4) {
console.log("skipping " + num);
continue;
}
console.log(num);
}
在 while
循环中,当 num
递增到 4
时,它进入 if
块,而您没有在 if 块内递增 num
.
您还使用了 continue
,它会跳过当前迭代中的代码并移至下一次迭代。这种情况不断发生,并且 num 永远不会递增,从而导致无限循环。
以下代码打印从 0 到 9 的数字,如问题中所问,跳过 4。
let num = 0;
while(num < 10) {
if(num === 4) {
console.log("skipping " + num++);
continue;
}
console.log(num++);
}
如果没有 if 语句,这个循环工作正常,但是一旦我添加 if 语句,它就会变成一个无限循环 - 为什么?根据我的理解,continue 应该让循环跳过一次迭代,然后像往常一样 运行?
let num=0;
while(num<10){
if(num===4){console.log("skipping "+num);
continue;
}
console.log(num++);
}
您还需要在 if
块中递增 num
。如果在 if 语句之后没有它,它永远不会到达 num++
并且您永远不会更改 num
的值,因此它保持 4 并且每次都进入 if
。您可以在 if
语句中添加 ++
。
let num = 0;
while(num < 10) {
if(++num === 4) {
console.log("skipping " + num);
continue;
}
console.log(num);
}
在 while
循环中,当 num
递增到 4
时,它进入 if
块,而您没有在 if 块内递增 num
.
您还使用了 continue
,它会跳过当前迭代中的代码并移至下一次迭代。这种情况不断发生,并且 num 永远不会递增,从而导致无限循环。
以下代码打印从 0 到 9 的数字,如问题中所问,跳过 4。
let num = 0;
while(num < 10) {
if(num === 4) {
console.log("skipping " + num++);
continue;
}
console.log(num++);
}