Цикл for в JavaScript (Node.js): подробное руководство
Цикл for в JavaScript
Что такое цикл for и зачем он нужен?
Представь, что тебе нужно 10 раз написать в тетради: «Я буду хорошо учиться». Конечно, можно написать это 10 раз ручкой. Но это скучно и долго. А если нужно 100 раз? Или 1000? Вот тут на помощь приходит цикл for — это команда, которая повторяет одно и то же действие заданное количество раз.
В программировании мы постоянно сталкиваемся с повторяющимися задачами:
- Вывести на экран числа от 1 до 10
- Повторить фразу 5 раз
- Посчитать сумму всех чисел от 1 до 100
Цикл for — это идеальный инструмент, когда мы точно знаем, сколько раз нужно повторить действие.
Основной синтаксис цикла for
В JavaScript цикл for выглядит так:
for (начало; условие; шаг) {
// код, который будет повторяться
}
Разберём по частям на простом примере. Допустим, мы хотим вывести числа от 1 до 5:
for (let i = 1; i <= 5; i = i + 1) {
console.log(i);
}
Что здесь происходит:
- let i = 1 — создаём счётчик. Начинаем с 1 (это «начало»)
- i <= 5 — условие. Пока i меньше или равно 5, цикл работает
- i = i + 1 — шаг. После каждого повторения прибавляем 1 к i
Цикл выполняется так:
- Шаг 1: i = 1, выводим 1, прибавляем 1 → i = 2
- Шаг 2: i = 2, выводим 2, прибавляем 1 → i = 3
- Шаг 3: i = 3, выводим 3, прибавляем 1 → i = 4
- Шаг 4: i = 4, выводим 4, прибавляем 1 → i = 5
- Шаг 5: i = 5, выводим 5, прибавляем 1 → i = 6
- Проверка: i = 6, условие i <= 5 — ложь. Цикл заканчивается.
Сокращённая запись шага
Вместо i = i + 1 можно писать короче: i++. Это то же самое — увеличить на 1.
for (let i = 1; i <= 5; i++) {
console.log('Привет!');
}
// Выведет "Привет!" 5 раз
Пример: Лифт (вывод этажей)
Представь, что ты в лифте на нулевом этаже. Нужно вывести все этажи, которые проезжает лифт, чтобы добраться до 7-го.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('На какой этаж едем? ', (floor) => {
const target = Number(floor);
console.log('Поехали!');
for (let i = 1; i <= target; i++) {
console.log('Этаж ' + i);
}
console.log('Приехали!');
readline.close();
});
Как это работает: Пользователь вводит номер этажа (например, 5). Цикл начинает с 1 и доходит до 5, выводя каждый этаж. Получаем: «Этаж 1», «Этаж 2», «Этаж 3», «Этаж 4», «Этаж 5» и «Приехали!».
Пример: Банкомат (повторение фразы)
Банкомат просит повторить фразу 3 раза для подтверждения.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Сколько раз повторить фразу? ', (count) => {
const times = Number(count);
for (let i = 1; i <= times; i++) {
console.log('Безопасность превыше всего!');
}
readline.close();
});
Пример: Поднятие мотивации (счётчик упражнений)
Ты решил сделать 10 приседаний. Программа считает каждое упражнение.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Сколько упражнений сделаем? ', (num) => {
const exercises = Number(num);
console.log('Начинаем тренировку!');
for (let i = 1; i <= exercises; i++) {
console.log('Упражнение ' + i + ' — сделано!');
}
console.log('Тренировка окончена! Молодец!');
readline.close();
});
Частые ошибки новичков
- Бесконечный цикл — забыли увеличить счётчик:
// ОШИБКА! i всегда = 1, цикл никогда не закончится for (let i = 1; i <= 5; ) { console.log('Привет'); } - Путаница с началом — часто начинают с 0, когда нужно с 1:
// Выведет: 0, 1, 2, 3, 4 (5 чисел, но не от 1 до 5) for (let i = 0; i < 5; i++) { console.log(i); } - Условие с < вместо <= — теряется последнее число:
// Выведет: 1, 2, 3, 4 (пропустит 5) for (let i = 1; i < 5; i++) { console.log(i); } - Забыли объявить переменную — без let будет ошибка в строгом режиме
Итоговый пример: Раздача конфет на день рождения
Ты принёс 15 конфет и хочешь раздать их одноклассникам по одной. Программа покажет, сколько конфет остаётся после каждого угощения.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Сколько конфет у тебя в коробке? ', (candies) => {
const total = Number(candies);
console.log('Начинаем раздавать конфеты!');
for (let i = 1; i <= total; i++) {
let remaining = total - i;
console.log('Раздал ' + i + ' конфету. Осталось: ' + remaining);
}
console.log('Все конфеты розданы! С днём рождения!');
readline.close();
});
Разберём решение:
- Пользователь вводит общее количество конфет (например, 15)
- Цикл for идёт от 1 до 15 (включительно)
- На каждом шаге мы считаем, сколько конфет осталось:
total - i - Выводим номер розданной конфеты и остаток
- После цикла — финальное сообщение
Важные советы
- Всегда проверяй, что счётчик изменяется внутри цикла
- Используй
i++— это короче и понятнее - Если нужно вывести числа от 1 до N — пиши
i = 1; i <= N; i++ - Если нужно вывести числа от 0 до N-1 — пиши
i = 0; i < N; i++
Цикл for — это твой верный помощник, когда нужно сделать что-то много раз. Чем больше ты практикуешься, тем легче будет решать задачи с повторяющимися действиями!