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.