Bonjour ! Dans nos leçons précédentes, nous avons exploré séparément la boucle Pour, idéale pour un nombre connu de répétitions, et la boucle Tant que, parfaite pour répéter une action jusqu'à ce qu'une condition ne soit plus remplie.
Introduction
Aujourd'hui, nous allons les mettre face à face. L'objectif de cette leçon est de vous donner une méthode claire pour choisir la boucle la plus appropriée à un problème donné. Savoir faire ce choix n'est pas juste une question de technique ; c'est un aspect fondamental de la conception d'algorithmes clairs et efficaces. En utilisant la bonne boucle, vous rendez votre intention immédiatement compréhensible, ce qui est une première étape cruciale vers votre objectif d'écrire du "code clean".
Nous allons établir la règle d'or pour faire ce choix, voir dans quels cas les boucles sont interchangeables, et surtout, comprendre pourquoi la boucle Tant que est parfois la seule option possible.
1. La règle d'or : Connu ou Inconnu ?
La décision de choisir entre une boucle Pour et une boucle Tant que repose sur une seule question fondamentale : Connaissez-vous le nombre exact d'itérations avant que la boucle ne commence ?
Un document que nous avons déjà utilisé résume cette règle de manière très efficace.
Algorithmes _5_ Boucle Tantque
Ce document synthétise parfaitement la règle de décision. Concentrez-vous sur la section qui oppose directement les deux types de boucles.
Lisez la section "IV. Bilan sur les boucles" au début de la page 5. La règle simple qui y est énoncée est le point central de cette leçon.
Pour résumer cette "règle d'or" :
-
Utilisez
Pourquand le nombre de répétitions est connu d'avance.- Exemple : "Traiter les 12 mois de l'année", "Afficher la table de multiplication de 1 à 10", "Calculer la somme des 100 premiers entiers". Dans chaque cas, le nombre de tours (12, 10, 100) est fixé avant le début de la boucle. On parle de boucle bornée.
-
Utilisez
Tant quequand le nombre de répétitions est inconnu et dépend d'une condition.- Exemple : "Demander un mot de passe jusqu'à ce qu'il soit correct", "Simuler des lancers de dé jusqu'à obtenir un 6", "Calculer les intérêts annuels jusqu'à ce qu'un capital double". Le nombre de tours dépendra des saisies de l'utilisateur, de l'aléa ou du résultat des calculs. On parle de boucle non bornée.
2. Une relation à sens unique
Vous vous demandez peut-être si une boucle peut remplacer l'autre. La réponse est intéressante : la boucle Tant que est plus "fondamentale" que la boucle Pour. En fait, toute boucle Pour peut être réécrite avec une boucle Tant que, mais l'inverse n'est pas toujours vrai.
Transformer une boucle Pour en Tant que
Une boucle Pour est simplement une version plus pratique et plus lisible d'une boucle Tant que pour les cas où l'on compte. Pour le prouver, transformons une boucle Pour.
// Version avec POUR
Pour i allant de 1 à 5 Faire
Afficher i
FinPour
Cette boucle peut être simulée avec une boucle Tant que en gérant manuellement trois choses :
- L'initialisation du compteur avant la boucle.
- La condition de continuation de la boucle.
- L'incrémentation du compteur à la fin de chaque tour.
// Version équivalente avec TANT QUE
Variable i en Entier
i ← 1 // 1. Initialisation
Tantque i ≤ 5 Faire // 2. Condition
Afficher i
i ← i + 1 // 3. Incrémentation
FinTantque
L'exercice suivant du document que vous connaissez illustre parfaitement cette conversion.
Algorithmes _5_ Boucle Tantque
Pour bien comprendre la relation entre les deux boucles, nous allons transformer une boucle Pour en une boucle Tant que. Cet exercice du document est parfait pour cela.
Allez à la page 12 et lisez l'énoncé de l'"Exercice 7". Essayez d'abord de faire la conversion vous-même. Ensuite, lisez la correction à la page 34. Analysez bien comment l'initialisation (k prend la valeur 0), la condition (Tantque k <= 2*n) et l'incrémentation (k prend la valeur k + 2) de la boucle Tant que recréent le comportement de la boucle Pour k variant de 0 à 2*n avec un pas de 2.
Pourquoi la Tant que est parfois irremplaçable
Maintenant, essayons de faire l'inverse. Prenez l'algorithme de validation de saisie de la leçon précédente :
Afficher "Entrez votre âge :"
Lire age
Tantque age < 0 Faire
Afficher "Erreur, l'âge doit être positif. Recommencez :"
Lire age
FinTantque
Pourriez-vous réécrire ceci avec une boucle Pour ? La réponse est non. Vous ne pouvez pas savoir combien de fois l'utilisateur va se tromper. Serez-vous prêt pour 1, 2, ou 1000 erreurs ? Il est impossible de définir la borne supérieure de la boucle Pour. C'est dans ces situations que la boucle Tant que est non seulement utile, mais indispensable.
3. Exercice pratique : faites le bon choix
Appliquons maintenant cette logique à un nouveau problème. Lisez l'énoncé suivant, et avant même de penser à écrire l'algorithme, répondez à la question : Pour ou Tant que ? et pourquoi ?
Problème : Un utilisateur dépose un capital de 500€ sur un compte épargne qui rapporte 2% d'intérêts composés par an. Écrivez un algorithme qui détermine et affiche le nombre d'années nécessaires pour que le capital dépasse 600€.
Votre analyse :
- Quelle est la tâche répétitive ? Le calcul de l'intérêt annuel et son ajout au capital.
- Le nombre de répétitions (d'années) est-il connu avant de commencer ? Non, c'est justement ce que l'on cherche à calculer.
- Conclusion : La boucle à utiliser est... ?
... La bonne réponse est la boucle **`Tant que`**.
Maintenant, prenez quelques minutes pour écrire le pseudo-code de cet algorithme. Pensez aux variables dont vous aurez besoin (capital, nombre d'années, etc.) et à la condition qui arrêtera la boucle.
Cliquez ici pour voir une solution possible
Algorithme CalculDureeEpargne
Variables
capital : Réel
annees : Entier
Début
// Initialisations
capital ← 500
annees ← 0
// Boucle de calcul
Tantque capital ≤ 600 Faire
// Appliquer l'intérêt de 2%
capital ← capital * 1.02
// Compter une année de plus
annees ← annees + 1
FinTantque
// Affichage du résultat
Afficher "Il faudra " + annees + " années pour que le capital dépasse 600€."
Fin
Conclusion
La capacité à choisir la bonne structure de contrôle est un marqueur de compétence en algorithmique. Aujourd'hui, vous avez appris la règle simple mais puissante qui guide le choix entre Pour et Tant que.
Points clés à retenir :
- La règle d'or : Le nombre d'itérations est-il connu avant la boucle ? Si oui, utilisez
Pour. Si non, utilisezTant que. - La boucle
Pourest une spécialisation de la boucleTant que, optimisée pour la clarté et la commodité dans les cas de répétitions comptées. - La boucle
Tant queest plus fondamentale et est indispensable pour les problèmes où l'arrêt dépend d'une condition dont l'évolution n'est pas prévisible. - Choisir la bonne boucle rend l'intention de votre algorithme plus claire, vous rapprochant ainsi de l'écriture d'un code propre et lisible.
Et après ?
Maintenant que vous savez construire et choisir le bon type de boucle, la prochaine leçon se concentrera sur les opérations que l'on effectue le plus souvent à l'intérieur : la manipulation de compteurs et d'accumulateurs. Nous verrons comment utiliser les boucles pour calculer des sommes, des moyennes, ou compter des occurrences, des techniques que vous utiliserez constamment.