Les boucles
Introduction
Un bébé se lève, fait un pas dans la direction de sa maman et tombe. Il se relève, refait un pas et retombe. Et ainsi de suite. Après le cinquième pas, il arrive à votre niveau. Ce bébé, qui apprend à marcher, vient d’utiliser l’algorithme des boucles.
Une boucle est l’une des structures de base de l’algorithmique. Elle consiste à créer un sous-programme qui se répète. On parle de structure itérative ou répétitive.
Les programmeurs n’aiment pas trop se répéter. Et dans un programme qui peut faire des millions de lignes, les occasions de se répéter ne manquent pas. Pour éviter cela, deux types de boucles sont principalement utilisées : la boucle Pour et la boucle Tant que.
La boucle Pour
Une boucle fonctionne par itération.
Si on connaît le nombre de fois qu’on veut effectuer une tâche, la boucle Pour, qui correspond à l’instruction for en Python et JavaScript, est la plus adaptée.
Pour variable allant de valeurDeDebut à valeurDeFin avec un pas de valeurDuPas
Instructions
Fin
Reprenons l’exemple du bébé qui doit faire cinq pas avant d’atteindre son papa ou sa maman. L’algorithme est le suivant :
Algorithme : Aller jusqu'à papa ou maman
Variables :
entier : nombreDePas, compteur
Début :
Pour compteur allant de 1 à 5 avec un pas de 1
nombreDePas ← compteur
Afficher “Bébé a fait”, nombreDePas, “pas pour arriver
jusqu'à papa ou maman”
Fin
Ici, nous créons deux variables :
-
nombreDePas : enregistre le nombre de pas effectués par le bébé.
-
compteur : prend les valeurs de chaque itération ou tour de la boucle. Il prendra donc successivement les valeurs 1, 2, 3, 4 et 5. C’est extrêmement commun d’utiliser une telle variable dans une boucle Pour. Son nom est souvent i (pour...
La boucle Tant que
La boucle Tant que est la petite (ou grande) soeur de la boucle Pour. Là où la boucle Pour est à privilégier quand on connaît le nombre d’itérations à effectuer, la boucle Tant que est très pratique quand on ignore le nombre de tours à opérer. Comment fait-on pour indiquer le nombre de tours ?
On se sert des opérateurs logiques et de comparaison. Comme vous le savez, le résultat quand on applique ces opérations est une variable booléenne True ou False. Tout comme les structures conditionnelles s’exécutent si la condition est True, la boucle Tant que s’exécute si l’expression qu’elle contient est True, et sort de la boucle si elle devient False. Voici comment on écrit une boucle Tant que :
Tant que expression
instructions
Fin
Écrivons l’algorithme Aller jusqu’à papa ou maman avec la structure Tant que.
Algorithme : Aller jusqu'à papa ou maman
Variables :
entier : nombreDePas, compteur
Début :
compteur ← 1
Tant que compteur <= 5
nombreDePas ← compteur
compteur...
La boucle infinie
Il est très important de faire en sorte que l’expression devienne False au moins une fois, sinon on ne sort jamais de la boucle : c’est ce qu’on appelle une boucle infinie. On doit donc bien penser à modifier l’expression de la boucle.
La boucle infinie, c’est un peu le piège classique dans lequel tombent tous les apprentis programmeurs qui utilisent la boucle Tant que. Voici un exemple d’une boucle infinie :
Algorithme : Vers l'infini et au-delà
Variables :
entier : compteur
Début :
compteur ← 1
Tant que compteur <= 10
Afficher compteur
Afficher “On est sorti de la boucle”
Fin
Le programme affiche un nombre infini de fois le nombre 1. En effet, c’est celui avec lequel est initialisée la variable compteur. La phrase "On est sorti de la boucle" ne s’affiche donc jamais. Pour régler ce problème, c’est simple :
Algorithme : On compte jusqu'à 10
Variables :
entier : compteur
Début :
compteur ← 1
Tant...
Les boucles imbriquées
Comme il existe des conditions imbriquées, il existe des boucles imbriquées. À quoi peuvent-elles bien servir ?
De la même façon qu’on peut utiliser des sous-conditions, par exemple pour différencier les catégories de mineurs (bébé, enfant, adolescent), on peut avoir besoin de faire appel à des imbrications de boucles. C’est ce qu’on vous a expliqué quand on vous a appris à lire l’heure.
En effet, pour passer des secondes aux minutes, il faut que l’aiguille des secondes fasse une boucle de 60 itérations, et pour passer des minutes aux heures, il faut que l’aiguille des minutes fasse une boucle de 60 itérations. Et pour passer des heures aux jours, il faut que l’aiguille des heures fasse une boucle de 24 itérations… Il s’agit de boucles imbriquées.
Voici l’algorithme :
Algorithme : Combien de minutes se sont écoulées ?
Variables :
entier : nombreDeSecondesTotal, seconde, minute,
Début :
minute ← 0
Afficher “Saisissez un nombre de seconde(s) et je vous dirai
combien de minute(s) cela représente”
Saisir...