break, continue и pass

break, continue и pass

Циклы for и while выполняются по стандартной схеме: одна итерация за другой до завершения. Но иногда нужно управлять этим процессом гибко: досрочно выйти из цикла, пропустить текущую итерацию или оставить пустой блок-заглушку. Для этого в Python есть три ключевых слова: break, continue и pass.

break: досрочный выход из цикла

break немедленно завершает цикл — не важно, сколько итераций ещё осталось. Выполнение продолжается с первой строки после цикла.

for i in range(10):
    if i == 5:
        break
    print(i)

print("После цикла")

Вывод:

0
1
2
3
4
После цикла

Когда i становится 5, break прерывает цикл — числа 5, 6, 7, 8, 9 не выводятся.

break работает и в while:

while True:
    text = input("Введите текст (quit для выхода): ")
    if text == "quit":
        break
    print(f"Вы написали: {text}")
print("До свидания!")

while True создаёт потенциально бесконечный цикл. break — единственный способ из него выйти. Это один из самых распространённых идиоматических паттернов в Python.

break для поиска

Типичная задача: найти первый элемент, удовлетворяющий условию, и остановиться:

numbers = [4, 7, 2, 9, 1, 8, 3]
target = 9
found = False

for n in numbers:
    if n == target:
        found = True
        break   # нашли — нет смысла перебирать дальше

if found:
    print(f"Число {target} найдено")
else:
    print(f"Число {target} не найдено")

Без break цикл продолжался бы до конца даже после нахождения — лишняя работа.

continue: пропустить текущую итерацию

continue прерывает текущую итерацию и сразу переходит к следующей. Оставшийся код в теле цикла для этой итерации не выполняется.

for i in range(10):
    if i % 2 == 0:
        continue   # чётные числа — пропускаем
    print(i)       # выводим только нечётные

Вывод: 1 3 5 7 9

Другой пример — пропуск «плохих» данных:

items = ["яблоко", "", "банан", None, "вишня", ""]

for item in items:
    if not item:      # пустая строка или None — truthy проверка
        continue
    print(item.upper())

Вывод: ЯБЛОКО, БАНАН, ВИШНЯ — пустые строки и None пропущены.

continue в while

n = 0
while n < 10:
    n += 1
    if n % 3 == 0:
        continue   # пропускаем кратные 3
    print(n)

Вывод: 1, 2, 4, 5, 7, 8, 10 (пропущены 3, 6, 9).

Важно: в while операция n += 1 должна стоять до continue, иначе получите бесконечный цикл — continue перескочит обратно на проверку, n не изменится, и цикл зависнет.

pass: заглушка

pass — это оператор, который буквально ничего не делает. Он нужен там, где Python синтаксически требует тело блока, но вы пока не готовы его заполнить.

for i in range(5):
    pass   # цикл выполняется 5 раз, но ничего не происходит

if True:
    pass   # заглушка — блок синтаксически корректен

Зачем это нужно? При постепенной разработке кода вы можете написать структуру программы, не заполняя все блоки сразу:

def validate_input(data):
    pass   # TODO: реализовать позже

def process(data):
    pass   # TODO: реализовать позже

pass позволяет коду запускаться без ошибок на этапе, когда реализация ещё не готова.

Вложенные циклы и break

Важный момент: break выходит только из ближайшего цикла, а не из всех вложенных сразу:

for i in range(3):
    for j in range(3):
        if j == 1:
            break   # выход только из внутреннего цикла
        print(f"i={i}, j={j}")

Вывод:

i=0, j=0
i=1, j=0
i=2, j=0

Внешний цикл продолжает работать — break прервал только внутренний.

Проверь себя

Что выведет следующий код?

for i in range(1, 8):
    if i == 3:
        continue
    if i == 6:
        break
    print(i)

Числа 1..7: 1 → вывод; 2 → вывод; 3continue, пропуск; 4 → вывод; 5 → вывод; 6break, выход. Вывод: 1 2 4 5.

Итог

  • break — досрочный выход из цикла; выполнение продолжается после цикла.
  • continue — пропустить текущую итерацию, перейти к следующей.
  • pass — оператор-заглушка, который ничего не делает; нужен для синтаксически корректных пустых блоков.
  • break и continue работают в обоих циклах: for и while.
  • break в while True: — идиоматический паттерн для цикла с выходом по условию внутри тела.
  • break выходит только из ближайшего (самого внутреннего) цикла.

В следующем уроке познакомимся с необычной конструкцией Python: else у цикла.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике