Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Boucles while et do-while en C++ – Maîtriser la répétition dans votre code

Boucles while et do-while en C++ – Maîtriser la répétition dans votre code

Ce guide explique les boucles while et do-while en C++ avec des exemples clairs, des flux et des conseils de bonnes pratiques.

Les boucles sont une pierre angulaire de la programmation efficace : elles vous permettent d'exécuter un bloc de code répétitivement sans dupliquer les lignes. Que vous itériez sur une plage ou attendiez une saisie utilisateur, choisir le bon type de boucle est crucial pour un code lisible et maintenable.

En C++, il y a trois constructions de boucle principales :

  1. for boucle – idéale quand le nombre d'itérations est connu.
  2. while boucle – s'exécute tant qu'une condition reste vraie.
  3. do…while boucle – garantit au moins une exécution avant de tester la condition.

Alors que la boucle for a été couverte dans un tutoriel précédent, cet article se concentre sur les boucles while et do…while, détaillant la syntaxe, le flux d'exécution, les pièges courants et les cas d'utilisation réels.


Boucle while C++

La syntaxe d'une boucle while est simple :

while (condition) {
    // corps de la boucle
}

La boucle évalue condition avant chaque itération :

Pour plus de détails sur les opérateurs relationnels et logiques C++, référez-vous au guide Opérateurs relationnels et logiques C++.


Flux de la boucle while

Boucles while et do-while en C++ – Maîtriser la répétition dans votre code

Exemple 1 : Afficher les nombres de 1 à 5

// Programme C++ pour afficher les nombres de 1 à 5
#include <iostream>
using namespace std;
int main() {
    int i = 1;
    // boucle while de 1 à 5
    while (i <= 5) {
        cout << i << " ";
        ++i;
    }
    return 0;
}

Sortie

1 2 3 4 5

Voici une décomposition étape par étape de l'exécution du programme :

ItérationVariablei <= 5Action
1èrei = 1true1 affiché, i devient 2
2èmei = 2true2 affiché, i devient 3
3èmei = 3true3 affiché, i devient 4
4èmei = 4true4 affiché, i devient 5
5èmei = 5true5 affiché, i devient 6
6èmei = 6falseBoucle terminée

Exemple 2 : Somme des nombres positifs seulement

// programme pour trouver la somme des nombres positifs
// si l'utilisateur entre un nombre négatif, la boucle se termine
// le nombre négatif entré n'est pas ajouté à la somme
#include <iostream>
using namespace std;
int main() {
    int nombre;
    int somme = 0;
    // prendre la saisie de l'utilisateur
    cout << "Entrez un nombre : ";
    cin >> nombre;
    while (nombre >= 0) {
        // additionner tous les nombres positifs
        somme += nombre;
        // prendre la saisie à nouveau si le nombre est positif
        cout << "Entrez un nombre : ";
        cin >> nombre;
    }
    // afficher la somme
    cout << "\nLa somme est " << somme << endl;
    return 0;
}

Sortie

Entrez un nombre : 6
Entrez un nombre : 12
Entrez un nombre : 7
Entrez un nombre : 0
Entrez un nombre : -2
La somme est 25

Dans cet exemple, le programme continue de demander des nombres à l'utilisateur. Tant que le nombre entré est non-négatif, il est ajouté à somme. Une saisie négative signale la fin de la boucle, et la somme finale est affichée.


Boucle do…while C++

La boucle do…while diffère de while en exécutant son corps au moins une fois avant d'évaluer la condition. C'est utile quand le corps de la boucle doit s'exécuter avant que la condition de sortie puisse être vérifiée.

Sa syntaxe est :

do {
    // corps de la boucle
} while (condition);

Flux d'exécution :


Flux de la boucle do…while

Boucles while et do-while en C++ – Maîtriser la répétition dans votre code

Exemple 3 : Afficher les nombres de 1 à 5

// Programme C++ pour afficher les nombres de 1 à 5
#include <iostream>
using namespace std;
int main() {
    int i = 1;
    // boucle do…while de 1 à 5
    do {
        cout << i << " ";
        ++i;
    } while (i <= 5);
    return 0;
}

Sortie

1 2 3 4 5

Étapes d'exécution :

ItérationVariablei <= 5Action
Initiali = 1Pas encore vérifié1 affiché, i devient 2
1èrei = 2true2 affiché, i devient 3
2èmei = 3true3 affiché, i devient 4
3èmei = 4true4 affiché, i devient 5
4èmei = 5true5 affiché, i devient 6
5èmei = 6falseBoucle terminée

Exemple 4 : Somme des nombres positifs seulement

// programme pour trouver la somme des nombres positifs
// Si l'utilisateur entre un nombre négatif, la boucle se termine
// le nombre négatif entré n'est pas ajouté à la somme
#include <iostream>
using namespace std;
int main() {
    int nombre = 0;
    int somme = 0;
    do {
        somme += nombre;
        // prendre la saisie de l'utilisateur
        cout << "Entrez un nombre : ";
        cin >> nombre;
    } while (nombre >= 0);
    // afficher la somme
    cout << "\nLa somme est " << somme << endl;
    return 0;
}

Sortie 1

Entrez un nombre : 6
Entrez un nombre : 12
Entrez un nombre : 7
Entrez un nombre : 0
Entrez un nombre : -2
La somme est 25

Sortie 2

Entrez un nombre : -6
La somme est 0.

Quand la première saisie est négative, la boucle s'exécute une fois et se termine immédiatement, laissant somme inchangé.


Boucles infinies

Une boucle infinie se produit quand la condition de la boucle n'évalue jamais à false. Cela peut arriver intentionnellement (ex. un serveur qui tourne pour toujours) ou accidentellement (erreurs de logique).

// boucle while infinie
while (true) {
    // corps de la boucle
}

De même, une boucle do…while peut être infinie :

int compteur = 1;
do {
    // corps de la boucle
} while (compteur == 1);

De telles boucles consomment des ressources jusqu'à ce que le programme soit terminé ou que le système manque de mémoire.


Boucles for vs while

La boucle for est la plus appropriée quand le nombre d'itérations est connu à l'avance :

// boucle itérée 5 fois
for (int i = 1; i <= 5; ++i) {
    // corps de la boucle
}

En contraste, les boucles while et do…while sont idéales quand le nombre d'itérations dépend de données d'exécution, comme la saisie utilisateur ou le résultat d'une condition complexe.


Explorez plus d'exemples de boucles C++ :

Langue C

  1. Classes et objets C++ : Guide pratique de la programmation orientée objet
  2. Maîtriser la gestion de mémoire en C++ : Utilisation experte de new et delete
  3. Maîtriser l'héritage C++ : Public, Protected et Private expliqués
  4. Fonctions amies et classes amies en C++ : Maîtriser le contrôle d'accès
  5. Boucle do-while en C++ : Syntaxe, exemples pratiques et boucles imbriquées
  6. Boucles While vs Do-While : Comparaison claire avec exemples pratiques
  7. Vérificateur de nombre palindrome en Java : algorithmes avec boucles while et for
  8. Guide complet sur la date et l'heure en C++
  9. Maîtriser la surcharge en C++ : Fonctions et opérateurs expliqués