FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Boucles do-while en programmation : fonctionnement, exemples et cas d'usage

Lorsque vous débutez en programmation, maîtriser les bases est essentiel pour progresser rapidement. Les types de variables, les boucles et les fonctions forment les fondations de tout code réussi. Sans elles, aborder des concepts avancés devient ardu.

La plupart des débutants découvrent rapidement les instructions if-else, les boucles while et for. Mais la boucle do-while, souvent méconnue, mérite toute votre attention. Découvrez son fonctionnement, ses usages optimaux et des exemples concrets.

Les bases de la boucle do-while

La boucle do-while exécute un bloc de code au moins une fois, teste ensuite la condition, et répète l'exécution tant que celle-ci reste vraie. Voici un exemple simple en pseudocode :

faire {
  sortie "La variable x vaut " + x ;
  x++ ;
} tant que (x < 5) ;
sortie "La boucle est terminée.";

Le code entre faire et tant que s'exécute toujours au minimum une fois, indépendamment de la valeur initiale de x.

Si x vaut 1 au démarrage, la boucle itère 5 fois (x=1 à 5). Sortie :

La variable x vaut 1
La variable x vaut 2
La variable x vaut 3
La variable x vaut 4
La variable x vaut 5
La boucle est terminée.

Si x vaut 20, elle s'exécute une seule fois (sortie "20"), incrémente à 21, puis s'arrête car 21 ≥ 5. Sortie :

La variable x vaut 20
La boucle est terminée.

Comparaison avec les boucles while et for

La principale différence : les boucles do-while vérifient la condition après l'exécution du bloc, contrairement aux autres qui testent avant.

Exemple de boucle while :

x = 10 ;
tant que (x < 5) {
  sortie "La boucle s'exécute !" ;
  x++ ;
}

Le bloc ne s'exécute jamais car 10 ≥ 5.

Avec do-while :

x = 10 ;
faire {
  sortie "La boucle s'exécute !" ;
  x++ ;
} tant que (x < 5) ;

Exécution une fois, puis arrêt.

On peut simuler do-while avec un while, mais c'est redondant :

sortie "Bonjour !" ;
x++ ;
tant que (x < 5) {
  sortie "Bonjour !" ;
  x++ ;
}

Boucles for

Une boucle for initialise, teste et incrémente en une ligne :

pour (int i = 0; i < 5; i++) {
  sortie "Itération " + i ;
}

Elle garantit un nombre précis d'itérations. En do-while équivalente :

faire {
  sortie "Itération " + i ;
  i++ ;
} tant que (i < 5) ;

Attention : sans initialisation préalable de i, le comportement est imprévisible (exécution minimale une fois).

En résumé :

  • Do-while : idéal pour exécuter au moins une fois, jusqu'à falsification de la condition.
  • While : répète tant que condition vraie, peut ne jamais s'exécuter.
  • For : nombre d'itérations prédéfini.

Sortir d'une boucle do-while

Toute boucle nécessite une condition de sortie pour éviter les infinies. Exemple défectueux :

x = 5 ;
faire {
  sortie "Boucle infinie !" ;
} tant que (x < 10) ;

Sans incrément de x, boucle infinie.

Exemple valide (jeu de dés jusqu'au 6) :

faire {
  int lancer = aleatoire(1,6) ;
  si (lancer == 6)
    interrompre ;
} tant que (vrai) ;

Alternative sans interrompre :

faire {
  int lancer = aleatoire(1,6) ;
} tant que (lancer != 6) ;

Préférez les conditions explicites pour une meilleure maintenabilité.

Une boucle infinie accidentelle

Exemple piégeux :

int x = 7 ;
faire {
  x = 1 ;
  x = x + 2 ;
  sortie "x vaut " + x ;
} tant que (x < 10) ;

x est remis à 1 puis à 3 à chaque itération : boucle infinie. Vérifiez les réinitialisations involontaires.

Exemples concrets

Pour lire un fichier jusqu'à EOF :

faire {
  resultat = lireDonnees(buffer) ;
} tant que (resultat != EOF) ;

Alternative sans do-while plus verbeuse.

Validation d'entrée utilisateur (nombre positif) :

faire {
  sortie "Entrez un nombre positif : " ;
  int entree = lireEntree() ;
} tant que (entree < 0) ;

Parfait : au moins une saisie, répétition jusqu'à validité.

Prêt à utiliser les do-while ?

Les boucles do-while brillent quand une exécution minimale est requise, sans connaissance préalable du nombre d'itérations. Repérez ces cas dans vos projets. La plupart des langages débutants les supportent.

Pour approfondir les bases, explorez nos astuces pour maîtriser un nouveau langage.

Quels autres cas d'usage imaginez-vous ? Partagez vos expériences avec les do-while en commentaires !

Crédit image : Aaban via Shutterstock.com

[]