Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подскажите про цикл for (let i = 0; i < 10; i++) {

суув сууцв Ученик (54), на голосовании 1 год назад
for (let i = 0; i < 10; i++) {

// если true, пропустить оставшуюся часть тела цикла
if (i % 2 == 0) continue;

alert(i); // 1, затем 3, 5, 7, 9
}

по моей логике идет так: 0 < 10 идем в 0 % 2 и там выходит ноль, почему этот ноль потом не выводится в алерте?

далее мы этот ноль идет в i++ и уже становится единицой и снова идем в 1 % 2 и там получается один, почему оно выводит?
Голосование за лучший ответ
Яков Гото Искусственный Интеллект (321127) 1 год назад
Твое i на первой итерации равно 0... первая итерация пропускается (continue принудительно завершает цикл и начинает новую итерацию), i меняется... на второй проверке условие if равно false, следовательно цикл выполняет alert. Что тут не понятного?

1 % 2 = 1... 1 не равно 0... значит false... значит alert...
суув сууцвУченик (54) 1 год назад
спасибо теперь я понял
df df Ученик (111) 1 год назад
i%2 возвращает остаток при делении на 2. 1%2 = 1, 2%2=0, 10%5=0.
конкретно в твоем случаи если i делится на 2 без остатка, то есть четное то итерация пропускается
Похожие вопросы