⚡ JavaScript

Цикл 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();
});

Частые ошибки новичков

  1. Бесконечный цикл — забыли увеличить счётчик:
    // ОШИБКА! i всегда = 1, цикл никогда не закончится
    for (let i = 1; i <= 5; ) {
      console.log('Привет');
    }
  2. Путаница с началом — часто начинают с 0, когда нужно с 1:
    // Выведет: 0, 1, 2, 3, 4 (5 чисел, но не от 1 до 5)
    for (let i = 0; i < 5; i++) {
      console.log(i);
    }
  3. Условие с < вместо <= — теряется последнее число:
    // Выведет: 1, 2, 3, 4 (пропустит 5)
    for (let i = 1; i < 5; i++) {
      console.log(i);
    }
  4. Забыли объявить переменную — без 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 — это твой верный помощник, когда нужно сделать что-то много раз. Чем больше ты практикуешься, тем легче будет решать задачи с повторяющимися действиями!