Цикл 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, но можно любое имя. - Не забывай про шаг, иначе цикл станет бесконечным.
Теперь ты готов решать задачи про лифт, конфеты, вирусы и тренировки. Пробуй менять числа, смотреть, как меняется вывод, и не бойся ошибаться — на ошибках учатся!