continue

Continue

L'instruction continue dans une boucle (boucle while ou boucle for) permet de 'sauter' en début de boucle.

Un premier exemple.

Dans le programme suivant, on demande n notes entières entre 0 et 20 à l'utilisateur puis on affiche la moyenne des notes entrées.
Lorsque l'utilisateur entre une note >20 ou une note <0, il est renvoyé en début de boucle et on lui redemande la note sur laquelle il s'est trompé. On relance ainsi la demande sans que le compteur de notes n'ait été incrémenté.
continue sert donc ici à gérer certaines erreurs prévisibles. On pourrait envisager la gestion d'autres erreurs...


n=4
print("Entrez la liste des {} notes entières entre 0 et 20.".format(n))



cpt=1
somme=0

while cpt<=n :
	note=int(input(" Note {} : ".format(cpt)))
	if note<0 or note>20 : continue
	cpt+=1
	somme+=note
	
moyenne=somme/n
print("Moyenne des notes : {}.".format(moyenne))

Exemple d'exécution de ce programme :

Entrez la liste des 4 notes entières entre 0 et 20.
 Note 1 : 15
 Note 2 : 21
 Note 2 : 20
 Note 3 : 6
 Note 4 : -7
 Note 4 : 8
Moyenne des notes : 12.25.

Un second exemple

On veut simuler un jeu où l'on tire au hasard des jetons numérotés entre 1 et 100. Un jeton tiré n'est pas remis dans le sac dans lequel on tire ces jetons.
Ici on utilise continue pour recommencer le tirage si l'on tombe sur un nombre déjà obtenu afin de bien simuler un tirage "sans remise".


from random import randint

n=5
print("Tirage au hasard de {} entiers distincts.".format(n))
cpt=0 # compte le nombre de jetons déjà tirés
liste=[] # liste des jetons déjà tirés

while cpt<n :
	h=randint(1,100) # tirage au hasard entre 1 et 100.
	if h in liste : continue  # retour au while : cpt n'est pas incrémenté
	cpt+=1 # si on atteint cette instruction,
	       # c'est que h n'est pas déjà dans liste
	print("Le {} ième entier tiré est le {}.".format(cpt,h))
	liste.append(h) # on ajoute le jeton h à la liste des jetons tirés.
	
print(liste)

Un exemple avec for

Supposons que nous ayons un traitement à appliquer pour toutes les valeurs de i entre 0 et 8, sauf pour la valeur 5. Le schéma de programme suivant pourrait être utilisé :

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

Affichage obtenu :

0
1
2
3
4
6
7
8

Un exercice à traiter sur ce sujet.