← Все вопросы

Как выйти сразу из двух вложенных циклов?

Задан 10 месяцев назад871 просмотров3 ответа
15

У меня два вложенных for. По условию нужно выскочить из обоих сразу, а break рвёт только внутренний. Как быть?

3 ответа

24
✓ Принятый ответ — помог автору

В Python нет break 2 как в некоторых языках. Рабочие варианты:

1. Вынести в функцию и сделать return — самый чистый:

def find():
    for i in range(n):
        for j in range(m):
            if cond(i, j):
                return i, j

2. Флаг:

found = False
for i in range(n):
    for j in range(m):
        if cond(i, j):
            found = True
            break
    if found:
        break

3. Цикл + else на внешнем, чтобы пропустить хвост. Чаще всего вариант с функцией читается лучше всего.

Михаил Виноградов return — реально удобнее всего, спасибо · 10 месяцев назад
11

Проще всего обернуть в функцию и сделать return — он вылетает из всех циклов сразу.

-6

Используй goto.

Кристина Зайцева в питоне нет goto · 10 месяцев назад
Евгений Смирнов это не Си 😅 · 10 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект