Кратко
Циклы позволяют выполнять один и тот же код несколько раз. 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 — как проходить по списку покупок: берёте каждый пункт по очереди.
Примеры
**Самый простой:**
for (let i = 0; i < 3; i++) {
console.log(i);
}
// Выведет: 0, 1, 2for — цикл с счётчиком. Начинаем с 0, увеличиваем на 1, пока i < 3.
**Простой:**
let fruits = ['яблоко', 'банан', 'вишня'];
for (let fruit of fruits) {
console.log(fruit);
}
// Выведет: яблоко, банан, вишняfor...of — удобный способ перебрать каждый элемент массива.
**Реальный пример:**
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) — функции: как упаковывать код в переиспользуемые блоки.