Interromper um loop é ótimo, mas e se quisermos apenas pular uma única vez? E se não quisermos executar o restante do loop para um valor específico, mas queremos que o loop continue?
Para isso, podemos usar a instrução continue, que continua a execução para a próxima rodada 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 pulará a execução para cada n em que n % 2 != 0 (n não é par).
O continue pula a execução de tudo o que vem depois dele. Portanto, tudo antes do continue ainda é executado. O Python precisa alcançar a instrução continue para saber que precisa pular o restante.
Desafio
Dados 10 números inteiros, o programa deve imprimir cada número se todas as condições forem atendidas:
É í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
Observe que [l, r] indica o intervalo de l a r, onde tanto l quanto r são inclusivos.
Dica
Você pode pular a execução do loop para cada um dos casos em que a condição não é atendida (assim, você pode ter 4 instruções if com continue e uma instrução print no final).