☕ Java

Цикл for в Java 17: подробное руководство

Цикл for в Java: когда нужно повторить действие несколько раз

Зачем нужен цикл for?

Представь, что тебе нужно сказать «Привет!» 10 раз подряд. Писать 10 раз System.out.println("Привет!"); — это скучно и долго. А если нужно 100 раз? Или 1000?

Цикл for помогает выполнить одно и то же действие заданное количество раз. Программисты используют его, когда точно знают, сколько раз нужно что-то повторить. Например, вывести все этажи, на которые едет лифт, или раздать конфеты каждому однокласснику.

Основной синтаксис цикла for

В Java 17 цикл for записывается так:

for (начало; условие; шаг) {
    // тело цикла — то, что повторяется
}

Разберём по частям:

  • начало — создаём счётчик (например, int i = 0). Это первое значение.
  • условие — пока условие верно (true), цикл работает. Как только стало false — цикл заканчивается.
  • шаг — что происходит со счётчиком после каждого повторения (чаще всего увеличиваем на 1: i++).

Простой пример: считаем от 1 до 5

Давай выведем числа от 1 до 5:

for (int i = 1; i <= 5; i++) {
    System.out.println("Число: " + i);
}

Как это работает?

  • Сначала i = 1.
  • Проверяем: 1 <= 5 — да, верно. Выводим "Число: 1".
  • Делаем шаг: i++ — теперь i = 2.
  • Снова проверяем: 2 <= 5 — да. Выводим "Число: 2".
  • И так до тех пор, пока i не станет равным 6. Тогда 6 <= 5 — ложь, цикл останавливается.

Вывод в консоль:

Число: 1
Число: 2
Число: 3
Число: 4
Число: 5

Разбираем типичные задачи

Задача «Лифт»

Мы на нулевом этаже, нажали кнопку этажа N. Лифт показывает каждый этаж, мимо которого проезжает. Нужно вывести все этажи от 1 до N.

Решение:

import java.util.Scanner;

public class Lift {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите номер этажа: ");
        int n = scanner.nextInt();

        for (int этаж = 1; этаж <= n; этаж++) {
            System.out.println("Лифт на этаже: " + этаж);
        }
        System.out.println("Приехали!");
    }
}

Ввод: 4

Вывод:

Лифт на этаже: 1
Лифт на этаже: 2
Лифт на этаже: 3
Лифт на этаже: 4
Приехали!

Задача «День рождения»

У тебя есть M конфет. Нужно раздать по одной конфете каждому из K одноклассников. Вывести, сколько конфет осталось после каждого шага.

Решение:

import java.util.Scanner;

public class Candies {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Сколько конфет? ");
        int candies = scanner.nextInt();
        System.out.print("Сколько одноклассников? ");
        int classmates = scanner.nextInt();

        for (int i = 1; i <= classmates; i++) {
            candies = candies - 1; // отдали одну конфету
            System.out.println("Раздал конфету " + i + "-му. Осталось: " + candies);
        }
        System.out.println("Раздача окончена!");
    }
}

Ввод: 5 и 3

Вывод:

Раздал конфету 1-му. Осталось: 4
Раздал конфету 2-му. Осталось: 3
Раздал конфету 3-му. Осталось: 2
Раздача окончена!

Задача «Кибербезопасность»

Компьютер заражён вирусами. Нужно вывести сообщение «Лечу вирус номер X», где X — номер вируса от 1 до N.

Решение:

import java.util.Scanner;

public class Antivirus {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Сколько вирусов нашёл антивирус? ");
        int viruses = scanner.nextInt();

        for (int i = 1; i <= viruses; i++) {
            System.out.println("Лечу вирус номер " + i);
        }
        System.out.println("Компьютер здоров!");
    }
}

Ввод: 3

Вывод:

Лечу вирус номер 1
Лечу вирус номер 2
Лечу вирус номер 3
Компьютер здоров!

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

  • Забыли про условие, и цикл работает вечно. Например: for (int i = 0; i < 5; ) — шаг не написан, i всегда 0, условие всегда верно. Программа зависнет.
  • Путают < и <=. Если нужно 5 раз, пишут i < 5 — тогда i будет 0,1,2,3,4 (всего 5 раз, но последнее число 4). Для чисел от 1 до 5 нужно i <= 5.
  • Забывают объявить счётчик. for (i = 0; ...) — ошибка, нужно int i = 0.
  • Путают шаг. i++ — увеличивает на 1. Если нужно уменьшать, пишут i--.

Итоговый пример: «Поднятие мотивации»

Ты решил делать упражнения в спортзале. Каждый день ты делаешь на одно упражнение больше, чем вчера. Напиши программу, которая выводит, сколько упражнений ты сделал в каждый день тренировки (с 1-го по N-й день).

Решение:

import java.util.Scanner;

public class Motivation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Сколько дней ты тренируешься? ");
        int days = scanner.nextInt();
        System.out.print("Сколько упражнений в первый день? ");
        int exercises = scanner.nextInt();

        for (int day = 1; day <= days; day++) {
            System.out.println("День " + day + ": " + exercises + " упражнений");
            exercises = exercises + 1; // каждый день на одно больше
        }
        System.out.println("Ты молодец! Продолжай в том же духе!");
    }
}

Ввод: 4 и 3

Вывод:

День 1: 3 упражнений
День 2: 4 упражнений
День 3: 5 упражнений
День 4: 6 упражнений
Ты молодец! Продолжай в том же духе!

Коротко о главном

  • Цикл for повторяет код заданное число раз.
  • Состоит из трёх частей: начало (счётчик), условие (пока true), шаг (изменение счётчика).
  • Счётчик чаще всего называют i, но можно любое имя.
  • Не забывай про шаг, иначе цикл станет бесконечным.

Теперь ты готов решать задачи про лифт, конфеты, вирусы и тренировки. Пробуй менять числа, смотреть, как меняется вывод, и не бойся ошибаться — на ошибках учатся!