Top.Mail.Ru
Ответы

Почему выдаёт ошибку в яндекс практикуме? (JavaScript)

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

Нет никакого бесконечного цикла. И вместо i = i + 1 нормально использовать i++.

Аватар пользователя
Просветленный

Бесконечный цикл в данном коде возникает из-за условия i <= 2. Поскольку i увеличивается на 1 на каждой итерации, оно всегда будет меньше или равно 2.
Вот несколько способов исправить это:
1. Изменить условие цикла:
Использовать < вместо <=:

123
 for (let i = 0; i < 2; i = i + 1) { 
  console.log(phrases[i].text); 
} 

Увеличивать i на большее значение:

123
 for (let i = 0; i <= 20; i = i + 5) { // шаг 5 
  console.log(phrases[i].text); 
} 

2. Добавить условие выхода внутри цикла:

123456
 for (let i = 0; ; i = i + 1) { 
  if (i > 2) { 
    break; // выйти из цикла, если i > 2 
  } 
  console.log(phrases[i].text); 
} 

3. Использовать другой тип цикла:
Например, цикл while с соответствующим условием.