Skip to main content

Someone wanted to learn this too, so Grasp built them a personal learning path.

You can keep exploring this one or create your own

Instructions Conditionnelles (if/else, switch)

Bonjour ! Bienvenue dans cette nouvelle leçon.

Dans la leçon précédente, nous avons appris à construire des conditions à l'aide des opérateurs de comparaison (>, ==, !=) et logiques (&&, ||). Ces conditions, qui évaluent toujours à true ou false, sont les "questions" que nous posons à notre programme.

Aujourd'hui, nous allons apprendre à utiliser les réponses à ces questions pour contrôler le déroulement de notre programme. L'objectif est d'écrire des instructions conditionnelles (if/else, switch). C'est grâce à elles que nos applications peuvent prendre des décisions, s'adapter aux actions de l'utilisateur et devenir véritablement "intelligentes".

Nous allons explorer les deux principales structures de décision en C# :

  1. La structure if-else, qui est la plus flexible et la plus utilisée.
  2. La structure switch, qui est une alternative plus propre dans certains cas spécifiques.

À la fin de cette leçon, vous serez capable de guider votre programme sur différents chemins d'exécution en fonction de n'importe quelle condition.

1. La prise de décision avec if, else if et else

L'instruction if est le bloc de construction fondamental de toute logique de décision. Elle permet d'exécuter un bloc de code uniquement si une condition est vraie.

Pour une introduction complète et progressive, nous allons suivre une excellente vidéo qui construit un exemple pas à pas.

C# for beginners - 12. If and Switch Statements

Cette vidéo de Nicholas Dingle, bien qu'en anglais, est exceptionnellement claire pour les débutants. Elle vous guidera depuis l'instruction if la plus simple jusqu'à une structure complète if-else if-else.

Regardez les extraits suivants dans l'ordre : Le if de base (00:02 - 02:08) : Comprenez la syntaxe de base et comment une condition true déclenche le code. Blocs de code multi-lignes (02:48 - 04:45) : Découvrez comment utiliser les accolades {} pour exécuter plusieurs instructions. Rendre le programme interactif (04:45 - 06:19) : Voyez comment utiliser une entrée utilisateur dans une condition. Ajouter des alternatives avec else (06:19 - 07:18) : Apprenez à exécuter un code alternatif si la condition if est fausse. Gérer plusieurs conditions avec else if (07:18 - 09:59) : Maîtrisez la chaîne if-else if-else pour gérer plusieurs cas exclusifs (ex: nombre positif, négatif ou zéro).

Synthèse des concepts clés

Résumons ce que vous venez de voir avec la syntaxe en C# et quelques explications en français.

L'instruction if simple
Elle exécute le code entre accolades {} si la condition est true.

int age = 20;
if (age >= 18)
{
    Console.WriteLine("Vous êtes majeur.");
}
C# If-Else Conditional Statement Example in Visual Studio
Un exemple de code C# montrant une instruction `if-else` de base. La condition `if` est vérifiée, et si elle est vraie, le premier bloc de code est exécuté. Sinon, le bloc `else` est exécuté.

L'instruction if-else
Elle offre un chemin alternatif. Si la condition du if est false, le code du bloc else est exécuté.

int age = 16;
if (age >= 18)
{
    Console.WriteLine("Vous êtes majeur. Bienvenue !");
}
else
{
    Console.WriteLine("Vous êtes mineur. Accès refusé.");
}

Comme l'explique la ressource C# : Les branchements conditionnels (if else), un if-else permet à un programme de suivre deux chemins différents.

La chaîne if-else if-else
C'est la structure la plus complète pour gérer une série de conditions mutuellement exclusives. Le programme teste les conditions dans l'ordre. Dès qu'il en trouve une qui est true, il exécute le code correspondant et ignore tout le reste de la chaîne. Le bloc else final est optionnel et sert de "fourre-tout" si aucune des conditions précédentes n'est remplie.

int note = 14;

if (note > 16)
{
    Console.WriteLine("Excellent travail !");
}
else if (note > 12)
{
    Console.WriteLine("Bon travail."); // Ce message sera affiché
}
else if (note >= 10)
{
    Console.WriteLine("Assez bien.");
}
else
{
    Console.WriteLine("Il faut travailler davantage.");
}
C# If-Else If-Else Ladder Example
Exemple d'une échelle `if-else if-else`. Le programme vérifie chaque condition séquentiellement et exécute le premier bloc où la condition est vraie. Ici, la variable `name` correspond à "virat", donc le message "Name is Virat" est affiché.

2. La structure switch

Parfois, vous devez vérifier une seule variable par rapport à une liste de valeurs possibles. Vous pourriez utiliser une longue chaîne if-else if, mais C# propose une alternative plus lisible et mieux adaptée : l'instruction switch.

La suite de la vidéo précédente introduit parfaitement le switch avec un exemple de menu.

C# for beginners - 12. If and Switch Statements

Continuons avec la même vidéo pour découvrir le switch. L'exemple du menu est un cas d'usage classique et très parlant.

Regardez ces derniers extraits : Le scénario du switch (09:59 - 12:04) : Comprenez dans quelle situation un switch est utile (un menu de sélection). La syntaxe du switch (12:04 - 14:31) : Apprenez le rôle des mots-clés case, break et default. Empiler les case (14:31 - 15:51) : Découvrez une astuce pour gérer plusieurs valeurs (ex: 'a' et 'A') avec le même code.

Comprendre la syntaxe du switch

Voici la structure générale d'un switch :

char choixUtilisateur = 'B';

switch (choixUtilisateur)
{
    case 'A':
        Console.WriteLine("Vous avez choisi l'option A.");
        break; // Le 'break' est crucial, il met fin au switch.

    case 'B':
        Console.WriteLine("Vous avez choisi l'option B."); // Ce code sera exécuté.
        break;

    case 'C':
        Console.WriteLine("Vous avez choisi l'option C.");
        break;

    default: // Exécuté si aucune des valeurs 'case' ne correspond.
        Console.WriteLine("Choix invalide.");
        break;
}

Comme vous l'avez vu, on peut "empiler" les case pour exécuter le même code pour plusieurs valeurs :

case 'b':
case 'B':
    Console.WriteLine("Vous avez choisi l'option B.");
    break;

if-else vs switch : Quand utiliser quoi ?

C'est une question importante. Voici un guide simple :

  • Utilisez if-else if-else quand :

    • Vous devez vérifier des intervalles de valeurs (ex: age < 18).
    • Vous avez des conditions complexes qui combinent plusieurs variables avec && ou ||.
    • Chaque condition est très différente des autres.
  • Utilisez switch quand :

    • Vous testez une seule variable contre une liste de valeurs discrètes et constantes (nombres, chaînes de caractères, char).
    • Cela rend le code plus lisible qu'une longue série de if (x == ...)

Le switch est moins flexible, mais beaucoup plus propre pour les cas où il est adapté.

3. Exercice pratique

Il est temps de mettre vos nouvelles connaissances en pratique ! Cet exercice vous aidera à bien comprendre les différences entre if et switch.

Practicing if and switch

Cette page web propose une série de petits défis conçus pour vous faire manipuler et transformer des instructions if et switch. C'est un excellent moyen de solidifier votre compréhension.

Rendez-vous à la section intitulée Practicing if and switch. Créez un nouveau projet console dans Visual Studio et suivez les instructions. Essayez de résoudre chaque point par vous-même avant de réfléchir à la solution. Ne vous préoccupez pas de télécharger les fichiers du site, contentez-vous de suivre les instructions décrites dans le texte.

Conseils pour l'exercice :

  • Pour la partie "From switch to if-else", pensez à utiliser l'opérateur || (OU logique) pour rendre votre if plus concis.
  • Pour la partie "From if-else to switch", demandez-vous si les conditions sont des vérifications d'égalité sur une seule variable.
  • N'hésitez pas à utiliser Console.WriteLine() pour afficher les valeurs de vos variables et vérifier que votre logique fonctionne comme prévu.

Conclusion

Félicitations ! Vous maîtrisez désormais l'un des piliers de la programmation : le contrôle de flux. Vos programmes ne sont plus de simples listes d'instructions exécutées de haut en bas ; ils peuvent maintenant réagir, s'adapter et prendre des chemins différents.

Les points clés à retenir :

  • if-else if-else est votre outil principal, puissant et flexible, pour gérer toutes sortes de conditions, des plus simples aux plus complexes.
  • switch est une alternative plus propre et plus lisible lorsque vous devez comparer une seule variable à une liste de valeurs spécifiques.
  • Le mot-clé break est obligatoire après chaque case dans un switch pour éviter que l'exécution ne "tombe" sur le cas suivant.
  • Le bloc default dans un switch joue le même rôle que le else final dans une chaîne if-else if.

Dans la prochaine leçon, nous aborderons un autre pilier de la programmation : les boucles (for, while). Alors que les conditions nous permettent de choisir si nous exécutons un bloc de code, les boucles nous permettront de l'exécuter plusieurs fois. C'est ce qui nous permettra de travailler avec des collections de données, comme une liste de produits dans un site e-commerce.

Can't find a good explanation? Sign up and we'll make it for you

Sign up