Управление циклами: операторы break и continue

Когда циклы выходят из-под контроля 🎢

Представь, что твой код — это поезд на круговой дороге. Что если нужно срочно остановиться или пропустить станцию? Вот где на сцену выходят break и continue — аварийные тормоза и экспресс-режим для циклов!


Полный стоп: оператор break

Работает как красная кнопка — моментально прерывает весь цикл, даже если условие ещё не выполнено. Идеально для экстренных случаев!

secret_number = 42

while True:  # Бесконечный цикл на первый взгляд
    guess = int(input("Угадай число от 1 до 100: "))

    if guess == secret_number:
        print("🎉 Ты взломал систему!")
        break  # Выходим из цикла сразу после угадывания

    print("Попробуй ещё!")

print("Игра окончена, спасибо за участие!")

Когда применять: - Поиск элемента в коллекции (нашли — выходим) - Обработка ошибок (что-то пошло не так — стоп) - Выход из бесконечных циклов по условию


Пропуск хода: оператор continue ⏭️

Этот оператор — как умная перемотка. Он пропускает текущую итерацию, но сам цикл продолжается.

# Напечатаем только нечётные числа
for num in range(1, 11):
    if num % 2 == 0:
        continue  # Пропускаем чётные
    print(f"Нечётное число: {num}")

Результат:

Нечётное число: 1
Нечётное число: 3
Нечётное число: 5
Нечётное число: 7
Нечётное число: 9

Где полезен: - Фильтрация элементов в цикле - Пропуск «битых» данных - Игнорирование определённых условий


Готовим с циклами: практический пример 🍳

Давай смоделируем кухонный таймер с продвинутыми функциями:

import time

print("🍳 Таймер готовки активирован!")
for minute in range(5, 0, -1):

    if minute == 2:  # Особое условие на 2-й минуте
        print("\n⚠️ Внимание! Добавьте специи!")
        time.sleep(3)  # Даём 3 секунды на реакцию
        continue

    print(f"\nОсталось: {minute} мин")
    time.sleep(1)  # Ждём 1 секунду

    if input("Прервать готовку? (y/n): ") == 'y':
        print("Экстренная остановка! ❌")
        break
else:  # Срабатывает, если break не вызывался
    print("\nБлюдо готово! Приятного аппетита! 🍽️")

Фишки примера:

  1. continue пропускает стандартный отсчёт при добавлении специй
  2. break мгновенно останавливает процесс
  3. else для цикла выполняется только при нормальном завершении

Под капотом: как это работает 🔧

На низком уровне:

  • break — передаёт управление сразу после всего цикла
  • continue — переходит к следующей итерации, пропуская остаток тела цикла

Важно: Вложенные циклы прерываются только на текущий уровень!


Опасные повороты: частые ошибки 🚧

  1. Бесконечные циклы — забыли break в while True
# Опасно!
while True:
    if condition:
        print("Почти вышли...")
        # Но забыли break!
  1. Слишком ранний continue — пропускаем важный код
for item in collection:
    if not is_valid(item):
        continue

    save_to_db(item)  # Может никогда не выполниться
    send_notification()  # Если is_valid вернёт False

Продвинутые трюки с Danila Bezhin 🎩

Для любителей глубины: на YouTube-канале Данилы Бежина есть разбор, как использовать break/continue в генераторах и вместе с else для циклов — мощные паттерны!


Практикуйся как профи 💻

Попробуй модифицировать этот код. Что будет, если заменить break на continue?

password = "python123"
attempts = 3

while attempts > 0:
    user_input = input("Введите пароль: ")
    if user_input == password:
        print("Доступ разрешён!")
        break
    attempts -= 1
else:
    print("Система заблокирована!")

Экспериментируй, ошибайся, анализируй — это путь к мастерству! Каждый раз, когда используешь эти операторы, ты делаешь код умнее и эффективнее.

Скрыть рекламу навсегда

🌱 Индвидидулаьные занятия

Индивидуальные онлайн-занятия по программированию для детей и подростков

Личный подход, без воды, с фокусом на понимание и реальные проекты.

🚀 Записаться на занятие