Почему оператор while создает бесконечный цикл?

Без оператора if этот цикл работает нормально, однако, как только я добавляю оператор if, он превращается в бесконечный цикл. Почему? Из моего понимания продолжить следует сделать цикл пропустить итерацию, а затем запустить как обычно?

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

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);
}

Внутри вашего while цикл, когда num увеличивается до 4Входит в if блок, и вы не увеличиваете num внутри, если блок.

Также вы используете continue который пропускает код в текущей итерации и переходит к следующей итерации. Это продолжается, и num никогда не увеличивается, что приводит к бесконечному циклу.

Следующий код печатает числа от 0 до 9, пропуская 4, как указано в вопросе.

let num = 0;

while(num < 10) {

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

    console.log(num++);
}
Другие вопросы по тегам