====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''.