Chargement...

switch

int choice = 2; range l'entier 2. Ensuite switch (choice) compare ce nombre à des étiquettes fixes. Quand choice vaut 2, case 2 s'exécute et Console.WriteLine("mid") écrit mid. L'écran tient sur une ligne. Gardez la classe publique nommée Pine.

Une valeur, plusieurs étiquettes fixes

Ouvrez le fichier Pine. Le nom de la classe reste Pine. Cette page ne renomme pas le type. Supprimez bool ready si cette ligne est encore là, y compris if (ready), pass, wait, et tout bloc else de la page précédente. Supprimez bool both si cette ligne est encore là. Supprimez toute ligne ReadLine. Le fichier que vous gardez n'attend pas de saisie, n'a pas ready, et n'a pas de fourche if / else. L'écran n'est écrit que par une ligne d'écriture sous le case correspondant ou sous default.

Dans Main, rangez un entier avant le switch : int choice = 2;. int est le mot de type. choice est le nom, et il commence par un c minuscule. Il n'y a pas de guillemets autour de 2. Le point-virgule termine la ligne de rangement. Cette ligne n'écrit pas l'écran. Ensuite vient le switch lui-même :
switch (choice) {
case 1:
Console.WriteLine("low");
break;
case 2:
Console.WriteLine("mid");
break;
case 3:
Console.WriteLine("high");
break;
default:
Console.WriteLine("none");
break;
}
Le mot switch est en minuscules. À l'intérieur des parenthèses se trouve le nom choice — la valeur que C# comparera à chaque étiquette case. Chaque ligne case se termine par un deux-points, pas par un point-virgule. Sous case 2 se trouve Console.WriteLine("mid"); puis le mot break et un point-virgule. Quand choice porte 2, C# entre dans case 2, écrit mid, atteint break, et quitte tout le switch. case 3 et default ne s'exécutent pas sur ce tour. Enregistrez le fichier.

Le fichier que vous gardez

Gardez cette forme d'enseignement. Un mot de type, int. Un nom, choice, rangé comme 2. Un switch avec des parenthèses autour de choice. Les cases 1, 2, et 3, chacun avec une ligne d'écriture et un break. Un default qui écrit none. Il n'y a pas de ligne ready, pas de if, et pas d'écriture nue du chiffre 2 hors des cases.

choice is 2

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int choice = 2;
        switch (choice)
        {
            case 1:
                Console.WriteLine("low");
                break;
            case 2:
                Console.WriteLine("mid");
                break;
            case 3:
                Console.WriteLine("high");
                break;
            default:
                Console.WriteLine("none");
                break;
        }
    }
}

Lisez depuis le haut. using System; prépare les noms courts. public class Pine nomme le type. public static void Main() est l'endroit où l'exécution démarre. int choice = 2; range 2. Il n'écrit rien. switch (choice) commence la comparaison. case 2 correspond, donc Console.WriteLine("mid"); s'exécute, puis break; quitte le switch. Une ligne à l'écran : mid. Pas de guillemets à l'écran. Pas de seconde ligne. Il n'y a pas de ligne bool ready dans le fichier que vous gardez.

Exécutez avec dotnet run. Le programme écrit mid. Il n'attend pas que vous tapiez. L'entier rangé et le switch étaient déjà dans le fichier. Si dotnet run attend, ReadLine est encore dans le fichier. Supprimez cette ligne et gardez int choice = 2; et le switch ci-dessus. Le programme se termine après la ligne d'écriture choisie. L'écran montre mid. Une ligne. Si l'écran montre 2, vous écrivez encore le nombre lui-même. Si l'écran montre pass ou wait, le fichier if / else est encore en place. Supprimez la fourche ready. Si l'écran montre none, choice est une valeur qui ne correspond à aucun case — c'est le second fichier de cette page, pas le fichier que vous gardez. Si l'écran montre switch (choice) comme lettres, une ligne d'écriture a des guillemets autour de ces caractères. Vous ne réinstallez pas le kit SDK .NET pour un écran qui montre la mauvaise ligne.

Pourquoi mid et pas low ou high ? Parce que la valeur entre parenthèses était 2, et case 2 est l'étiquette qui correspond. C# n'écrit pas le chiffre 2 sur cette exécution, sauf si vous écrivez une ligne d'écriture pour ce chiffre. Il écrit la ligne d'écriture qui s'exécute sous le case correspondant. Les parenthèses tiennent la valeur comparée. Chaque étiquette case ici est un entier fixe. break termine le switch pour que les cases suivants restent silencieux. default attend les valeurs qui ne correspondent à aucun case — il reste inutilisé tant que choice vaut 2.

Quand aucun case ne correspond

Changez seulement la valeur rangée : int choice = 9;. Laissez la structure switch telle quelle. Maintenant aucun de case 1, case 2, ou case 3 ne correspond. C# passe à default et exécute Console.WriteLine("none");. L'écran doit montrer none, une ligne.

choice is 9

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int choice = 9;
        switch (choice)
        {
            case 1:
                Console.WriteLine("low");
                break;
            case 2:
                Console.WriteLine("mid");
                break;
            case 3:
                Console.WriteLine("high");
                break;
            default:
                Console.WriteLine("none");
                break;
        }
    }
}

C'est le second fichier. Ce n'est pas le fichier que vous gardez. Exécutez dotnet run. L'écran montre none. Une ligne. Il ne montre pas mid. Il ne montre pas 9, sauf si vous écrivez ce chiffre exprès. Si l'écran montre mid, vous êtes encore sur le fichier que vous gardez, où choice vaut 2. Après avoir vu none, remettez le fichier gardé : int choice = 2; et le même switch qui écrit mid sur case 2. Les deux versions sont du C# valide. Elles enseignent la même forme switch avec un case correspondant et avec default.

Relisez l'exécution default une fois encore dans l'ordre. choice porte 9. switch (choice) commence. case 1 ne correspond pas. case 2 ne correspond pas. case 3 ne correspond pas. Le contrôle continue à default. Console.WriteLine("none"); s'exécute. Une ligne à l'écran. Le chiffre 9 lui-même n'apparaît jamais, sauf si vous l'écrivez exprès.

break arrête les cases suivants

break n'est pas une décoration. Sans lui, C# peut continuer à exécuter les lignes du case suivant après une correspondance. Ce fall-through surprend les débutants. Voici une courte démo qui oublie break exprès après case 2 — ce n'est pas le fichier que vous gardez :

missing break after case 2

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int choice = 2;
        switch (choice)
        {
            case 1:
                Console.WriteLine("low");
                break;
            case 2:
                Console.WriteLine("mid");
            case 3:
                Console.WriteLine("high");
                break;
            default:
                Console.WriteLine("none");
                break;
        }
    }
}

Avec choice égal à 2 et sans break sous case 2, l'écran peut montrer mid sur une ligne et high sur la suivante. case 2 a correspondu, a écrit mid, puis est tombé dans case 3 et a écrit high. Le fichier que vous gardez place break sous chaque case pour que chaque chemin écrive exactement une ligne. Remettez break avant de traiter à nouveau le fichier Pine comme le fichier de leçon gardé.

Règles qui gardent les étiquettes claires

Les parenthèses autour de la valeur switchée sont obligatoires. Écrire switch choice { … } sans parenthèses fait écrire une erreur au build. Chaque étiquette case sur cette page est une constante entière : case 1:, case 2:, case 3:. Un deux-points suit l'étiquette. Écrire case 2; avec un point-virgule au lieu d'un deux-points n'est pas la forme que cette leçon construit. default n'a pas de valeur après lui — juste default: puis les lignes pour « rien n'a correspondu ».

switch n'est pas le même outil que if. if (ready) pose une question true ou false. switch (choice) fait correspondre une valeur à une liste d'étiquettes fixes. N'écrivez pas switch (ready) avec un bool en attendant la même forme de leçon que la page précédente. Gardez les démos de cette page sur un int nommé choice et des étiquettes case entières. Des comparaisons comme if (score > 10) appartiennent encore à if quand vous avez besoin d'une plage ; switch brille quand les valeurs sont discrètes et connues à l'avance.

Une confusion courante est d'écrire la syntaxe elle-même : Console.WriteLine("switch (choice)");. Cela écrit les caractères switch (choice). Cela ne choisit pas de case. Une autre confusion est de laisser une démo if / else dans le même Main et de se demander pourquoi l'écran montre pass au lieu de mid. Le Main de cette session ne doit porter que le int et le switch.

📊 choice and the screen

choice Screen
1 low
2 mid
3 high
9 none

Servez-vous du tableau comme contrôle après une exécution, pas à sa place. choice 2 avec le fichier que vous gardez écrit mid. choice 9 avec le second fichier écrit none. choice 1 écrit low. choice 3 écrit high. Si mid et high apparaissent tous les deux pour choice 2, un break manque sous case 2 — corrigez les breaks plutôt que de réinstaller le kit SDK .NET.

Vous pouvez maintenant ranger un entier, le placer dans switch (…), et donner à chaque valeur fixe son propre case avec une ligne d'écriture et un break. Quand un case correspond, cette ligne s'exécute ; quand rien ne correspond, default s'exécute. La page suivante est for, où le même bloc de lignes peut s'exécuter encore et encore pendant qu'un compteur change.

L'écran est le case correspondant

Le fichier que vous gardez écrit mid. Le nom choice est dans les parenthèses, et choice n'est pas à l'écran. Le chiffre 2 est sur la ligne de rangement, et 2 n'est pas à l'écran. Les autres cases sont dans le fichier, et ils ne s'exécutent pas sur l'exécution gardée. Des guillemets autour de switch (choice) écrivent des lettres, pas un case correspondant.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
6
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut