Arrêter une boucle, c'est bien, mais que faire si nous voulons simplement sauter cette itération ? Que faire si nous ne voulons pas exécuter le reste de la boucle pour une valeur spécifique, mais que nous souhaitons que la boucle continue ?
Pour cela, nous pouvons utiliser l'instruction continue, qui passe directement à l'itération suivante de la boucle :
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
Ce programme va sauter l'exécution pour chaque n tel que n % 2 != 0 (n n'est pas pair).
continue permet de sauter l'exécution de tout ce qui suit dans la boucle pour cette itération. Donc, tout ce qui précède continue est toujours exécuté. Python doit atteindre l'instruction continue pour savoir qu'il doit passer le reste.
Défi
Étant donné 10 entiers, le programme doit imprimer chaque nombre si toutes les conditions suivantes sont remplies :
Il est impair
Il est en dehors de la plage [3, 7]
Il est en dehors de la plage [11, 13]
Il est en dehors de la plage [17, 23]
Entrée
Sortie
12
9
6
0
1
-1
41
28
27
17
9
1
-1
41
27
Notez que [l, r] indique la plage de l à r où l et r sont inclus.
Conseil
Vous pouvez sauter l'exécution de la boucle pour chaque cas où la condition n'est pas remplie (vous pouvez donc avoir 4 instructions if avec continue et une instruction print à la fin).