Привет! Помнишь, как мы в детстве наказывали себя за провинность — писали в тетради 100 раз «Я больше не буду…»? Уже на десятой строчке понимаешь, насколько это нудно.
А что, если бы у тебя был робот-помощник, который делает всю рутину за тебя? Сказал ему «Напиши это 100 раз» — и пошёл пить чай.
В программировании такого робота зовут ЦИКЛ. Сегодня мы научимся им управлять.
Цель урока: Понять, зачем нужны циклы, и освоить три их вида на живых, полезных примерах.
Шаг 1: Зачем нужны циклы? Простая аналогия
Представь, что ты — шеф-повар в пиццерии. К тебе пришёл заказ на 10 одинаковых пицц «Пепперони».
Без цикла (кошмар):
- Взять тесто → раскатать → добавить соус → добавить колбасу → поставить в печь.
- Взять тесто → раскатать → добавить соус → добавить колбасу → поставить в печь.
- Взять тесто → … (повторить ещё 8 раз). К концу дня руки отвалятся.
С циклом (магия автоматизации):
- ЗАДАНИЕ: Сделать пиццу «Пепперони».
- СЧЁТЧИК: От 1 до 10.
- ЦИКЛ: ПОКА счётчик не дошёл до 10, ПОВТОРЯЙ задание.
- Идёшь пить кофе, пока автоматическая линия штампует пиццы.
Цикл — это инструкция «ПОВТОРЯЙ это действие N раз или ПОКА выполняется условие».
Шаг 2: Цикл for — когда знаешь ТОЧНОЕ число повторений
Идеален, когда ты заранее знаешь количество «кругов». Например: «вывести 10 раз», «обработать ровно 100 заказов», «пройти по всем 12 месяцам».
Синтаксис в кулинарных терминах:
for ( подготовить_счётчик ; проверить_условие ; изменить_счётчик ) { действие }
Разберём первый цикл for (int pizzaNumber = 1; pizzaNumber <= 5; pizzaNumber++):
- Подготовка (int pizzaNumber = 1): Создаём счётчик pizzaNumber и даём ему стартовое значение 1. Выполняется один раз.
- Проверка (pizzaNumber <= 5): Перед каждым кругом спрашиваем: «Счётчик ещё не больше 5?» Если true — идём в шаг 3. Если false — выходим из цикла.
- Действие ({ System.out.println(...); }): Выполняем нужную работу (печатаем про пиццу).
- Изменение (pizzaNumber++): Увеличиваем счётчик на 1. После каждого круга возвращаемся к шагу 2.
Последовательность: 1 → 2 → 3 → 4 → 5 → ... когда на втором шаге станет false( pizzaNumber будет равна 6), цикл будет остановлен.
Шаг 3: Цикл while — «ПОКА что-то истинно»
Используй while, когда не знаешь заранее, сколько будет повторений, но чётко видишь условие для остановки.
Аналогия: Ты пьёшь воду из бутылки ПОКА не почувствуешь, что жажда утолена. Заранее не знаешь, сколько сделаешь глотков.
Ключевое правило while: Внутри цикла должно быть что-то, что влияет на условие (например, thirstLevel-- или изменение balance). Иначе цикл станет вечным, и программа зависнет.
Шаг 4: Цикл do-while — «СДЕЛАЙ, потом проверь»
Этот цикл гарантирует, что действие выполнится хотя бы один раз, даже если условие изначально ложно. Сначала делаем, потом проверяем.
Аналогия: Ты всегда заходишь в магазин за хлебом, а потом смотришь, есть ли в кошельке деньги, чтобы заплатить. Действие «зайти в магазин» неизбежно.
Шаг 5: Кнопки «Стоп» и «Пропуск» (break и continue)
Иногда нужно досрочно остановить цикл или пропустить текущий круг.
- break — «Аварийный стоп». Немедленно завершает весь цикл.
- continue — «Пропусти этот круг». Переходит сразу к следующей итерации, не выполняя оставшийся код.
Шаг 6: Практика: Игра «Охотник за сокровищами»
Давай соберём всё в увлекательной мини-игре, где цикл — основа геймплея.
📝 Итог урока
Сегодня ты приручил главного автоматизатора — цикл. Теперь ты можешь:
✅ Поручать программе скучную повторяющуюся работу (цикл for).
✅ Организовывать процесс, который длится до наступления события (цикл while).
✅ Гарантировать, что действие выполнится минимум один раз (цикл do-while).
✅ Точно управлять ходом выполнения (break для остановки, continue для пропуска).
Циклы — это суперсилия программиста. Они превращают строки кода в мощные автоматизированные процессы.
✏️ Домашнее задание
- «Умный будильник» (используй for). Программа симулирует твои попытки проснуться. У тебя есть 5 попыток нажать «Отложить». Цикл должен выводить: «БЗЗЗ! Пора вставать! (Попытка 1)», «БЗЗЗ! Серьёзно, вставай! (Попытка 2)» и т.д. На 5-й попытке вывести: «Эх... Проспал.».
- «Бесконечный рогалик» (используй while). Симулятор поедания рогаликов. Пока пользователь вводит 1, программа выдает новый рогалик и считает количество съеденных. Если вводится 0 — цикл прерывается break, и программа говорит: «Съедено рогаликов: N. Теперь можно и отдохнуть.»
- «Система проверки PIN-кода» (используй do-while). Программа гарантированно спрашивает PIN у пользователя хотя бы один раз, а затем продолжает спрашивать, пока не будет введён правильный PIN ("1234"). После 3 неверных попыток используй break для блокировки.
В следующей статье нас ждёт массивы — «лотки для яиц», которые идеально сочетаются с циклами. Мы научимся хранить и обрабатывать списки данных: все оценки в группе, цены товаров в корзине или координаты врагов в игре.
Удачи в практике! Как всегда, жду твои творческие решения в комментариях.