Adloun

sciences numériques et technologie (seconde) · Chapitre 4 · Exercice de TD

Quatre boucles, laquelle tourne indéfiniment ?

Les boucles · La boucle non bornée : while · niveau 2

Énoncé

Pour chacune de ces boucles, dire si elle se termine et, si oui, ce qu'elle affiche. Corriger celles qui ne se terminent pas.

# (a)
n = 10
while n > 0:
    print(n)

# (b)
n = 10
while n > 0:
    n = n - 3
print(n)

# (c)
n = 1
while n != 10:
    n = n + 3
print(n)

# (d)
n = 5
while n > 0:
    n = n - 1
    print(n)

Corrigé

(a) Boucle infinie. n n'est jamais modifié : la condition reste vraie pour toujours et 10 s'affiche sans fin. Correction : ajouter n = n - 1 dans le bloc.

(b) Se termine, et affiche -2. Les valeurs sont ; le test est faux. Noter que la boucle « saute » par-dessus : la condition n'est pas « atteindre zéro » mais « être encore positif ».

(c) Se termine, mais par chance. n prend les valeurs : elle atteint exactement , s'arrête après tours et affiche 10. Changez la valeur initiale en n = 2 et la suite devient : elle saute par-dessus et la boucle ne s'arrête jamais.

(d) Se termine et affiche 4, 3, 2, 1, 0. Le print étant après la décrémentation, le premier nombre affiché est et non .

La leçon est dans le cas (c) : une condition d'arrêt écrite avec != n'est sûre que si la variable atteint exactement la valeur visée. Avec < ou >, on est protégé du dépassement. C'est la même prudence qu'avec les flottants — mieux vaut un test d'inégalité qu'un test d'égalité.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →