为什么这个while语句创建了一个无限循环?

时间:2017-11-20 06:34:23

标签: javascript while-loop continue

如果没有if语句,这个循环工作正常,但是只要我添加if语句就会把它变成无限循环 - 为什么?根据我的理解,继续应该让循环跳过迭代,然后正常运行?

 let num=0;
 while(num<10){
        if(num===4){console.log("skipping "+num);
                continue;
    }
     console.log(num++);
}

2 个答案:

答案 0 :(得分:2)

您还需要增加num块中的if。在if语句之后没有它它永远不会到达num++并且你永远不会改变num的值,所以它保持4并且每次都进入if。您可以在++声明中添加if

let num = 0;

while(num < 10) {
    
    if(++num === 4) { 
        console.log("skipping " + num);
        continue;
    }
    
    console.log(num);
}

答案 1 :(得分:1)

while循环中,当num增加到4时,它会进入if块,如果阻止,则不会在num内增加。{ / p>

此外,您正在使用continue跳过当前迭代中的代码并移至下一次迭代。这种情况一直在发生,而num永远不会增加,从而导致无限循环。

以下代码按照问题中的要求打印从 0到9 跳过4的数字。

let num = 0;

while(num < 10) {

    if(num === 4) { 
        console.log("skipping " + num++);
        continue;
    }

    console.log(num++);
}