@Soer44

Почему цикл выводит в консоль значение больше заявленного в условии?

let i = 2;
while (i <= 16) {
	i++;
	if (i % 2 === 1)
	console.log(i);
}


В консоль должны выводится нечётные числа в промежутке от 2 до 16, а выводится ещё и 17.
Если ставлю строгое сравнение, то всё работает как надо.
Объясните пожалуйста логику цикла.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 2
i++ делай в конце тела цикла
У тебя на первой итерации число начинается с 3 тк ты двойку инкриментишь а потом только консолишь результат
Ответ написан
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
while (i <= 16) { // i = 16; 16 <= 16 === true
  i++;            // i = 17
  if (i % 2 === 1)
  console.log(i); // -> 17
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы