====if==== ===Condition classique=== 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; ===Conditions multiples sur une même valeur=== using System.Linq; public static class Ext { public static bool In(this T obj, params T[] args) { return args.Contains(obj); } } if (2.In(1, 2, 3, 4)) return; [[https://stackoverflow.com/questions/3907299/if-statements-matching-multiple-values|if statements matching multiple values]] {{ :lang:csharp:condition:c_-_if_statements_matching_multiple_values_-_stack_overflow_2020-02-17_10_15_08_am_.html |Archive du 11/10/2010 le 17/02/2020}} ====switch==== ===Cas courant=== 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''.