为什么这个 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++);
}