JS Core

Циклы

Научиться повторять действия с помощью циклов for, while, do...while и for...of, понимая, когда использовать каждый.

Начальный (Beginner)
Нужно знать:Условия

Кратко

Циклы позволяют выполнять один и тот же код несколько раз. for — когда известно количество итераций. while — когда условие выхода. for...of — для перебора массивов. break — выход из цикла, continue — пропуск итерации.


Подробно

for — основной цикл с счётчиком: for (let i = 0; i < 5; i++) { console.log(i); // 0, 1, 2, 3, 4 }

Три части:

  • let i = 0 — начальное значение (выполняется один раз)
  • i < 5 — условие (проверяется перед каждой итерацией)
  • i++ — инкремент (выполняется после каждой итерации)

while — цикл с условием: while (условие) { // тело цикла }

do...while — цикл, который выполняется хотя бы раз: do { // тело цикла } while (условие);

for...of — перебор массивов: let fruits = ['яблоко', 'банан', 'вишня']; for (let fruit of fruits) { console.log(fruit); }

break — немедленный выход из цикла. continue — пропуск текущей итерации и переход к следующей.


Ментальная модель

Цикл — как карусель: вы крутитесь, пока не решите выйти (break) или пока не закончится время (условие). for...of — как проходить по списку покупок: берёте каждый пункт по очереди.


Примеры

**Самый простой:**

javascript
for (let i = 0; i < 3; i++) {
  console.log(i);
}
// Выведет: 0, 1, 2

for — цикл с счётчиком. Начинаем с 0, увеличиваем на 1, пока i < 3.

**Простой:**

javascript
let fruits = ['яблоко', 'банан', 'вишня'];

for (let fruit of fruits) {
  console.log(fruit);
}
// Выведет: яблоко, банан, вишня

for...of — удобный способ перебрать каждый элемент массива.

**Реальный пример:**

javascript
let attempts = 0;
let correct = false;

while (!correct && attempts < 3) {
  let answer = prompt('Угадайте число от 1 до 10');
  if (answer === '7') {
    correct = true;
    console.log('Правильно!');
  } else {
    attempts++;
    console.log('Неверно. Осталось попыток: ' + (3 - attempts));
  }
}

while — цикл с условием. Выполняется, пока correct = false и attempts < 3.


Частые ошибки

**Неправильно:** Бесконечный цикл

**Почему:** while (true) { ... } без break — бесконечный цикл. Браузер зависнет.

**Правильно:** Всегда проверяйте, что условие выхода достижимо.

**Неправильно:** Изменение массива во время for...of

**Почему:** Добавление/удаление элементов во время итерации может привести к пропуску элементов.

**Правильно:** Не изменяйте массив во время перебора. Используйте filter/map для создания нового массива.

**Неправильно:** Забывать i++ в цикле for

**Почему:** Без i++ счётчик никогда не увеличится → бесконечный цикл.

**Правильно:** Всегда проверяйте, что счётчик изменяется.


Важно запомнить

  • for — когда известно количество итераций
  • while — когда условие выхода
  • for...of — для перебора массивов
  • break — выход из цикла
  • continue — пропуск итерации

Связь

Назад: Вы знаете условия (J7) — теперь вы умеете повторять действия на основе условий.

Вперёд: Следующий урок (J9) — функции: как упаковывать код в переиспользуемые блоки.

Материалы курса JS Core — PROlab Academy.