← Все вопросы
Как выйти сразу из двух вложенных циклов?
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 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.