Почему оператор 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++);
}