Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 15

Choisir la bonne boucle : Pour ou Tant que ?

Recommended resources

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 Pour quand 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 que quand 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 :

  1. L'initialisation du compteur avant la boucle.
  2. La condition de continuation de la boucle.
  3. 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 :

  1. Quelle est la tâche répétitive ? Le calcul de l'intérêt annuel et son ajout au capital.
  2. 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.
  3. 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, utilisez Tant que.
  • La boucle Pour est une spécialisation de la boucle Tant que, optimisée pour la clarté et la commodité dans les cas de répétitions comptées.
  • La boucle Tant que est 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.