Boucle do-While en C : Un Guide pour Débutants

Salut à toi, futurs magiciens de la programmation ! Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le monde des boucles do-while en C. En tant que ton enseignant informatique de quartier, je suis là pour te guider à travers ce concept avec pleins d'exemples et une touche d'humour. Alors, mets ton chapeau de réflexion virtuel et plongeons dedans !

C - Do...while loop

Qu'est-ce qu'une Boucle do-while ?

Avant de rentrer dans les détails, comprenons ce qu'est une boucle do-while. Imagine que tu joues à un jeu où tu dois lancer un dé jusqu'à obtenir un six. Tu vas lancer le dé au moins une fois, non ? C'est exactement ce qu'une boucle do-while fait en programmation - elle exécute un bloc de code au moins une fois avant de vérifier une condition.

Syntaxe de la Boucle do-while

Maintenant, regardons la syntaxe d'une boucle do-while. Ne t'inquiète pas si elle paraît un peu intimidante au départ - on la décomposera ensemble !

do {
// code à exécuter
} while (condition);

Voici une manière fun de la retenir : "Fais cela, tant que c'est vrai !" Simple, n'est-ce pas ?

Comment Fonctionne la Boucle do-while ?

Voyons comment fonctionne une boucle do-while :

  1. Le code à l'intérieur du bloc do est exécuté.
  2. Après l'exécution, la condition dans l'instruction while est évaluée.
  3. Si la condition est vraie, la boucle retourne à l'étape 1.
  4. Si la condition est fausse, la boucle se termine, et le programme continue avec l'instruction suivante.

Diagramme de la Boucle do-while

Pour visualiser ce processus, regardons un diagramme :

┌─────────────────┐
│                 │
│  Début          │
│                 │
└────────┬────────┘
│
▼
┌─────────────────┐
│                 │
│  Exécuter code  │
│  du bloc        │
│                 │
└────────┬────────┘
│
▼
┌─────────────────┐
│  Évaluer        │
│  la condition   │
│                 │
└────────┬────────┘
│
▼
┌───┴───┐
┌───┤ Vrai ? ├───┐
│   └───────┘   │
│ Oui          │ Non
│              │
│              ▼
│        ┌──────────────┐
│        │              │
│        │  Fin         │
│        │              │
│        └──────────────┘
└───────────────┘

Exemple de Boucle do-while

Regardons un exemple pratique. Souviens-toi de notre jeu de dé ? Codons-le !

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
int dé;
int lancés = 0;

// Initialiser le générateur de nombres aléatoires
srand(time(0));

do {
// Lancer le dé (générer un nombre aléatoire entre 1 et 6)
dé = rand() % 6 + 1;
lancés++;

printf("Tu as jeté un %d\n", dé);
} while (dé != 6);

printf("Il t'a fallu %d jets pour obtenir un 6 !\n", lancés);

return 0;
}

Décomposons cela :

  1. Nous incluons les bibliothèques nécessaires et configurons nos variables.
  2. Nous initialisons le générateur de nombres aléatoires avec l'heure actuelle.
  3. Dans la boucle do-while :
  • Nous "lancer" le dé en générant un nombre aléatoire entre 1 et 6.
  • Nous incrémentons notre compteur de lancers.
  • Nous affichons le résultat du lancer.
  1. La boucle continue tant que nous ne lançons pas un 6.
  2. Une fois que nous lançons un 6, nous quittons la boucle et affichons combien de lancers il a fallu.

Ce programme s'exécutera toujours au moins une fois (tu ne peux pas gagner sans lancer !), ce qui est parfait pour une boucle do-while.

Difference Entre les Boucles while et do-while

Tu te demandes peut-être, "Pourquoi ne pas utiliser une boucle while ?" Excellent question ! Comparons-les :

Fonctionnalité Boucle while Boucle do-while
Vérification de la condition Avant la première exécution Après la première exécution
Exécutions minimales 0 1
Cas d'utilisation Quand tu peux ne pas avoir besoin d'exécuter la boucle du tout Quand tu dois exécuter la boucle au moins une fois
Syntaxe while (condition) { ... } do { ... } while (condition);

La différence clé est qu'une boucle do-while s'exécute toujours au moins une fois, même si la condition est fausse dès le départ. C'est comme dire, "Fais cela une fois, et puis nous verrons si nous devons le faire à nouveau."

Quand Utiliser une Boucle do-while

Les boucles do-while sont parfaites pour des scénarios où tu dois :

  1. Exécuter du code au moins une fois avant de vérifier une condition.
  2. Valider l'entrée utilisateur (tu dois obtenir l'entrée au moins une fois avant de pouvoir la vérifier).
  3. Implémenter des programmes à menu (afficher le menu au moins une fois avant de demander si l'utilisateur veut continuer).

Voici un exemple rapide d'un programme simple de menu :

#include <stdio.h>

int main() {
int choix;

do {
printf("\nMenu :\n");
printf("1. Dire bonjour\n");
printf("2. Raconter une blague\n");
printf("3. Quitter\n");
printf("Entrez votre choix : ");
scanf("%d", &choix);

switch(choix) {
case 1:
printf("Bonjour, monde !\n");
break;
case 2:
printf("Pourquoi les scientifiques ne font pas confiance aux atomes ? Parce qu'ils tout inventent !\n");
break;
case 3:
printf("Au revoir !\n");
break;
default:
printf("Choix invalide. Veuillez réessayer.\n");
}
} while (choix != 3);

return 0;
}

Dans ce programme, nous affichons le menu et obtenons l'entrée utilisateur au moins une fois, ce qui rend la boucle do-while parfaite.

Conclusion

Et voilà, les amis ! Nous avons démystifié le mystère des boucles do-while en C. Souviens-toi, comme avec n'importe quel outil en programmation, les boucles do-while ont leur place et leur moment. Elles ne sont pas la solution à tous les problèmes, mais quand tu as besoin de t'assurer que quelque chose se produit au moins une fois avant de vérifier une condition, elles sont ta structure de choix.

La pratique rend parfait, donc n'hesite pas à expérimenter avec des boucles do-while dans tes propres programmes. Qui sait ? Tu pourrais juste trouver que tu fais des sixes en un rien de temps !

Bonne programmation, et que les boucles soient toujours en ta faveur !

Credits: Image by storyset