Les boucles do-while présentent une structure de contrôle où l'exécution du bloc d'instructions se produit avant la vérification de la condition. Cette caractéristique les rend particulièrement utiles pour les scénarios nécessitant au moins une exécution du bloc, comme les interfaces interactives ou les validations de saisie.
Pour illustrer l'application pratique des boucles do-while, examinons deux exemples concrtes qui démontrent leur utilité dans des situations réelles.
Implémentation d'un Menu ATM
Un menu interactif constitue un cas d'utilisation idéal pour les boucles do-while, car l'affichage initial est requis avant que l'utilisateur ne fasse un choix. L'interface doit d'abord présenter les options disponibles, puis attendre la sélection de l'utilisateur, et continuer à afficher le menu jusqu'à ce que l'option de sortie soit choisie.
La logique suivante s'applique : afficher le menu, recevoir l'entrée utilisateur, traiter le choix, et répéter jusqu'à la sélection de l'option de quitter. Puisque l'affichage initial est obligatoire, la structure do-while convient parfaitement.
Le traitement des sélections utilisateur peut être optimisé en utilisant une structure switch, qui permet de gérer efficacement plusieurs cas possibles avec une syntaxe claire et organisée.
Calcul de la Somme des Chiffres
Une autre application fréquente consiste à manipuler les chiffres d'un nombre entier. Pour extraire chaque chiffre unitairement, nous utilisons les opérations arithmétiques modulo et division. Le processus implique :
- Extraire le dernier chiffre via l'opérateur modulo (%)
- Ajouter ce chiffre à un total cumulatif
- Supprimer le dernier chiffre en divisant par 10
- Répéter jusqu'à ce que le valeur devienne zéro
Cete méthode garantit que tous les chiffres sont traités exactement une fois, indépendamment de la longueur initiale du nombre.
Code d'Exemple pour le Menu ATM
Voici une implémentation démontrant l'utilisation d'une boucle do-while combinée à une structure switch pour créer une interface utilisateur interactive :
namespace InterfaceBancaire { class ApplicationATM { static void Main() { string selectionUtilisateur;
do
{
AfficherMenu();
selectionUtilisateur = Console.ReadLine();
TraiterSelection(selectionUtilisateur);
} while (selectionUtilisateur != "5");
Console.WriteLine("Merci d'utiliser notre service.");
}
static void AfficherMenu()
{
Console.WriteLine("\n=== MENU BANCAIRE ===");
Console.WriteLine("1. Vérifier solde");
Console.WriteLine("2. Effectuer retrait");
Console.WriteLine("3. Faire dépôt");
Console.WriteLine("4. Consulter historique");
Console.WriteLine("5. Quitter");
Console.Write("Votre choix : ");
}
static void TraiterSelection(string option)
{
switch (option)
{
case "1":
Console.WriteLine("Module consultation solde activé");
break;
case "2":
Console.WriteLine("Module retrait d'argent démarré");
break;
case "3":
Console.WriteLine("Module dépôt d'argent lancé");
break;
case "4":
Console.WriteLine("Historique des transactions affiché");
break;
case "5":
// Sortie - aucune action requise ici
break;
default:
Console.WriteLine("Option invalide, veuillez réessayer");
break;
}
}
}
}
</div>Code d'Exemple pour le Calcul de Somme
--------------------------------------
Cet exemple montre comment extraire et additionner chaque chiffre d'un nombre entier en utilisant des opérations arithmétiques simples :
<div>```
using System;
namespace CalculNumerique
{
class SommeChiffres
{
static void Main()
{
int valeurEntree;
int chiffreCourant;
int sommeTotale = 0;
Console.Write("Entrez un nombre entier positif : ");
valeurEntree = int.Parse(Console.ReadLine());
int copieValeur = valeurEntree; // Préserver la valeur originale
do
{
chiffreCourant = copieValeur % 10;
sommeTotale += chiffreCourant;
copieValeur /= 10;
} while (copieValeur > 0);
Console.WriteLine($"Somme des chiffres de {valeurEntree} : {sommeTotale}");
}
}
}