Structures de contrôle : les boucles


Afin de suivi le cours/TD plus agréable, je vous conseille de lire le guide vidéo disponible en cliquant sur l’image ci-dessous. Vous pouvez par ailleurs optimiser votre espace de travail en ouvrant une fenêtre consacré au guide vidéo et une autre à la lecture de cette page web.


Afin de répéter une instruction plusieurs fois, on utilise la structure de boucle. Imaginons un robot sur une chaine de production, qui répète le même mouvement. Sans structure de boucle, le programmeur serait obligé d’écrire plusieurs fois les mêmes d’instructions. C’est une solution très chronophage, surtout si le nombre répétition évolue.

La structure de boucle répond à cette problématique. Elle est similaire à la structure des conditions.

1. La boucle while (tant que)

Pour comprendre la structure de boucles, partons de plusieurs exemples :

Exemple 1 :

  • L’instruction 1 : Affiche la chaine de caractères « PUNITION – copier 1000 fois : Je cesserai insensément mes sottises insensées en cours de SNT ».
  • L’instruction 2 : On stocke la valeur 1 dans une variable i.
  • L’instruction 3 : C’est la structure de boucle while. Composées :
    • De l’instruction while qui marque le commencement de la boucle. Que l’on peut traduire par Tant que
    • i<=1000 est l’assertion de la structure de boucle. Tant qu’elle est vraie, on répète les instructions du bloc d’instructions de la boucle.
    •  : permet de marquer la fin de l’assertion.
  • L’instruction 4 : affiche la chaine de caractère « Ligne n » Valeur de la variable i « Je cesserai insensément mes sottises ensemencées en cours de SNT »
  • L’instruction 5 : Stocke dans la variable i la valeur de la variable i plus 1.

Exemple 2 :

Tant que l’assertion reponse==1 est vraie, les instructions des lignes 5 et 6 seront exécutées.

Remarque : Comme pour les conditions, le bloc d’instructions des boucles est indenté.

Exemple de boucle infini :

Si l’on saisit la valeur 1 pour l’instruction 2, l’assertion reponse==1 sera vraie. Dans la structure de boucle, la valeur de la variable réponse n’évolue plus. Par conséquent, l’assertion reponse==1 sera tout le temps vraie. L’instruction 4 sera donc exécutée à l’infinie. On dit que la boucle est une boucle infinie.

Pour rappels, vous trouverez ci-dessous la liste des opérateurs logiques :

Opérateur logiqueRôleExemple
==Test de l’égalité3==4 : renvoi faux
!=Test de différence3 !=4 : renvoi vrai
<Test inférieur3<4 : renvoi vrai
<=Test inférieur ou égal4<=3 : renvoi faux
>Test supérieur3>4 : renvoi faux
>=Test supérieur ou égal4>=3 : renvoi vrai
andEt logique
orOu logique
notNon logique

Exercice 1

Tester le programme ci-dessous et expliquer l’intérêt de l’usage de la boucle.

Cliquer sur le + pour obtenir la réponse :
Réponse en vidéo

Exercice 2

Écrire un programme qui affiche le message suivant tant que la valeur 29 n’est pas saisie : ”Veuillez saisir 29”

Cliquer sur le + pour obtenir la réponse :

2. La boucle for (pour)

Voici un type de boucle différent. Ce type de boucle de sert qu’à répéter un bloc d’instructions un certain nombre de fois.

Voici un exemple qui exécute exactement les mêmes instructions que dans l’exemple 1.

  • La structure de boucle for de décompose de la façon suivante :
    • for introduit la structure de la boucle de type pour.
    • i est la variable évoluant dans la boucle.
    • in rang(0,1000) implique que la variable i va prendre les valeurs évoluant de 0 à 999 inclus. En tout 1000 instructions sont exécutées.
    •  : permet de la structure de boucle.

Remarque : La boucle for est une boucle while « masquée »

Si l’on veut commencé par la ligne 1 et finir à la ligne, il suffit d’incrémenter de 1 les valeurs prises par la variable i.


Exercice 3

Écrire un programme qui affiche “coucou” 300 fois.

Cliquer sur le + pour obtenir la réponse :

Exercice 4

Écrire un programme qui affiche les 300 premiers nombres. Puis les 300 premiers nombres pairs.

Cliquer sur le + pour obtenir la réponse :

Exercice 5

Tester et dérouler le programme suivant. C’est-à-dire expliquer le rôle de chaque instruction.

Cliquer sur le + pour obtenir la réponse :
Réponse en vidéo