Interromper um loop é ótimo, mas e se quisermos apenas saltar esta vez? E se não quisermos executar o resto do loop para este valor específico, mas queremos que o loop continue?
Para isso, podemos usar a instrução continue, que continuará a execução para a próxima iteração do loop:
numbers = [1, 5, 6, 4, 0, -4, 8, 11, 2]
even_sum = 0
for n in numbers:
if n % 2 != 0:
continue
even_sum += n
print(n)
print('Sum:', even_sum)
6
4
0
-4
8
2
Sum: 16
Este programa irá saltar a execução para cada n em que n % 2 != 0 (n não é par).
O continue salta a execução de tudo o que vem depois dele. Portanto, tudo antes do continue ainda é executado. Python precisa de alcançar a instrução continue para saber que precisa de saltar o resto.
Desafio
Dado 10 números inteiros, o programa deve imprimir cada número se todas as condições forem verdadeiras:
É ímpar
Está fora do intervalo [3, 7]
Está fora do intervalo [11, 13]
Está fora do intervalo [17, 23]
Entrada
Saída
12
9
6
0
1
-1
41
28
27
17
9
1
-1
41
27
Note que [l, r] indica o intervalo de l até r onde ambos l e r são inclusivos.
Dica
Você pode saltar a execução do loop para cada um dos casos em que a condição não é satisfeita (assim, pode ter 4 instruções if com continue e uma instrução print no final).