TOC

This article has been localized into French by the community.

Control Structures:

L'instruction switch

L'instruction switch peut être vu comme un ensemble d'instructions si. C'est une liste de possibilités, avec une action pour chaque possibilité, et une option d'action par défaut au cas où aucune des possibilités est vraie. Une instruction switch simple ressemble à ça :

int number = 1;
switch(number)
{
    case 0:
Console.WriteLine("The number is zero!");
break;
    case 1:
Console.WriteLine("The number is one!");
break;
}

La variable à vérifier est située après le mot-clé switch, elle est suivie d'une liste d'instructions "case", où la variable est comparée à une valeur donnée. Vous pouvez voir qu'il y a une déclaration "break" à la fin de chaque "case". En effet C# nécessite qu'on lui indique que l'on quitte le bloc avant de sortir du switch. Si l'on écrit une fonction, on peut utiliser une déclaration "return" à la place de "break".

Dans cet exemple on utilise une variable de type integer, mais il aurait pu s'agir d'un string, ou de n'importe quel autre type de variable. De plus, on peut spécifier la même action pour plusieurs instructions "case". On peut le voir dans l'exemple suivant, dans lequel on a pris une partie de l'input entré par l'utilisateur que l'on utilise dans le switch :

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
}

Dans cet exemple on pose une question à l'utilisateur, et on lui propose d'entrer la réponse "yes", "no" ou "maybe". Nous lisons ensuite la réponse entrée par l'utilisateur, et créons une instruction switch pour celle-ci. Pour aider l'utilisateur, on convertit l'entrée en minuscule avant de le comparer à nos string (dans les "case") qui l'on a écrit en minuscule : ainsi il n'y a pas de différences pour l'utilisateur entre minuscules et majuscules.

Toutefois l'utilisateur peut écrire quelque chose de tout à fait différent. Dans ce case aucun résultat ne sera généré par l'instruction switch. Ajoutons le mot-clé "default" :

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
    default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}

Si aucun des "case" n'est vrai, alors l'instruction par "default" sera executé, si elle existe. Elle est optionnelle comme on a pu le voir dans les exemples précédents.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!