Почему это предупреждение показывает 9, но не 5 или другое число?Цикл с инструкциями if и break
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert(i++);
Почему это предупреждение показывает 9, но не 5 или другое число?Цикл с инструкциями if и break
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert(i++);
Вы увеличиваете свой индекс несколько раз за цикл.
Сначала передайте переменную 1, потому что вы увеличиваете 0 в своем блоке if
.
Следующий проход переменной - 3, потому что ваш инкремент в блоке for
.
Затем в if
блоке вы увеличить его до 4.
Тогда 6 из приращения for
.
Затем 7 из if
приращение.
Тогда 9 из for
increment и for
не действует и не работает.
Это должно работать 4, как вы ожидаете.
for (var i = 0; i < 9; i+=2)
{
if (i++ == 5) {
alert(i++);
};
else continue;
}
Это предупредит, когда i
значение будет 4.
if statement
Поскольку внутри вашего тела for loop
обыкновение быть оценена в true
.
Как показано ниже, ваш код будет выполнен.
Итерация 1
if(1 == 5) //false
Итерация 2
if(4 == 5) //false
Итерация 3
if(7 == 5) //false
После третьего итерация, i
будет 9
, поэтому условие цикла цикла завершится с ошибкой в этой точке и конец цикла. Затем за пределами цикла предупреждение будет печатать значение i
как 9.
Это потому, что в вашей петле i никогда не бывает 5, когда происходит проверка if (++i == 5) break
.
На первой итерации i = 0. Но тогда ваш ++i
делает i равным 1, поэтому на второй итерации i составляет 3 в начале цикла. Затем ++1
заставляет меня перейти на 4, поэтому на следующей итерации он пропустит более 5 (следовательно, он никогда не сломается) и станет 6.
Он оповещает 9, потому что когда это то, что я оставил, когда закончилась ваша петля ,
Потому что вы вызываете предупреждение за пределы цикла. и в это время значение i равно 9. И оно никогда не удовлетворяет вашему условию if. –
Спасибо вам большое. – Alexey