continue в Python

Введение

Из официальной документации известно, что continue можно испльзовать как в for … in так и в while циклах, где он переводит цикл в следующую итерацию.

7.10. The continue statement continue_stmt ::= "continue" continue may only occur syntactically nested in a for or while loop, but not nested in a function or class definition within that loop. It continues with the next cycle of the nearest enclosing loop. When continue passes control out of a try statement with a finally clause, that finally clause is executed before really starting the next loop cycle.

Пример

Рассмотрим файл ex.py

for i in range(5): if i == 3: continue print(i)

python ex.py

0 1 2 4

Если i равно 3, срабатывает continue, который переносит нас в следующий шаг цикла и до print дело уже не доходит

В следующем примере из официальной документации Python делается акцент на том, что continue - это способ пропусить всё что находится ниже какого-то условия и перейти сразу к следующей итерации.

for num in range(2, 10): if num % 2 == 0: print("Found an even number", num) continue print("Found an odd number", num)

python odd_even.py

Found an even number 2 Found an odd number 3 Found an even number 4 Found an odd number 5 Found an even number 6 Found an odd number 7 Found an even number 8 Found an odd number 9

Каждый раз когда условие срабатывает мы перемещаемся в следующий шаг и не проваливаемся до последнего print. Если условие не срабатывает мы не доходим до continue и проваливаеся к последнему print

Изображение баннера

Последний шаг

Из примера с чётыми и нечётными числами поведение continue должно стать понятным, теме не менее обратим особое внимание на последний шаг циклов с continue.

Вернёмся к первому примеру , но теперь == заменим на !=

for i in range(5): if i != 4: continue print(i)

python ex.py

4

print сработал только когда i было равно 4. В остальных случаях мы прыгали в следующий шаг цикла

Что будет если условие из if не сработает ни разу

for i in range(5): if i != 9: continue print(i)

python ex.py

Если ни одно из чисел не подошло последний continue переносит нас в конец цикла и до print дело по-прежнему не доходит.

Чтобы получить последнее значение i нужно выполнить print за телом цикла

for i in range(5): if i != 9: continue print(i) print(i)

python ex.py

4

Автор статьи: Андрей Олегович