if () { plusieurs instructions; } else if () une instruction; else une instruction;
Attention aux else
s'il y a des if
imbriqués :
if () if () une instruction; else // Ici, l'indentation est mauvaise car le else correspond au second if. une instruction;
using System.Linq; public static class Ext { public static bool In<T>(this T obj, params T[] args) { return args.Contains(obj); } } if (2.In(1, 2, 3, 4)) return;
if statements matching multiple values Archive du 11/10/2010 le 17/02/2020
Les switch
/ case
agissent comment des goto
. Il faut impérativement mettre un break
pour éviter de passer à l'instruction suivante. L'omission du break
est interdit.
int i = 0; switch (i) { case 0: i = 2; break; case 1: i = 3; break; // Plusieurs conditions pour une même exécution de code. case 2: default: break; }
Les variables déclarées dans un case
sont accessibles depuis les case
suivants.
int k = 2; switch (k) { case 0: // Déclaration de la variable. int i = 1; break; case 1: { int j = 3; break; } case 2: default: // On peut utiliser la variable locale i mais i n'est pas initialisé à 1. i = 123; // j = 15; // Impossible car en dehors du bloc de déclaration de j. break; }
Le switch
/ case
fonctionne de la même façon sur des string
.