1-
en écrivant le code de cette manière en regroupant les cases on dit que:public void FaireUnSwitch(int nbr)
{
switch (nbr)
{
case 0:
case 1:
case 2:
Console.WriteLine("Je suis dans le cas 0, 1 ou 2!");
break;
case 3:
case 4:
case 5:
Console.WriteLine("je suis dans le cas 3, 4 ou 5!");
break;
}
}
"pour 0,1,2 faire l'instruction X, et pour 3,4,5 faire l'instruction Y"
2-
en C# on a la possibilité de faire un goto vers un label (étiquette), ce qui veut dire qu'on peut aller executer n'importe quel case, nous voulons à tout moment .public enum State { One, Two, Three, Four };
switch (mystate)
{
case State.One:
Console.WriteLine("Je suis dans l'etat: one!");
break;
case State.Two:
Console.WriteLine("Je suis dans l'etat: two!");
goto case State.Four;
case State.Three:
Console.WriteLine("Je suis dans l'etat: three!");
goto case State.Two;
case State.Four:
Console.WriteLine("Je suis dans l'etat: four!");
goto case State.One;
}
si vous essayez d'executer le code precedant avec comme parametre mystate=three , vous aurez le resultat suivant :
Je suis dans l'etat: three!Cool, non? c'est pas encore fini, nous avons un peu d'excitation en plus. Vous pouvez également utiliser cette instruction goto pour aller au bloc par défaut dans une instruction switch. Par exemple
Je suis dans l'etat: two!
Je suis dans l'etat: four!
Je suis dans l'etat: one!
Ici, dans tous les cas sauf pour State.One, nous allons au bloc default (par défaut) avant de quitterpublic enum State { One, Two, Three, Four };
public static void FaireUnSwitch(State mystate)
{
switch (mystate)
{
case State.One:
Console.WriteLine("I'm in state one!");
break;
case State.Two:
Console.WriteLine("I'm in state two!");
goto default;
case State.Three:
Console.WriteLine("I'm in state three!");
goto default;
case State.Four:
Console.WriteLine("I'm in state four!");
goto default;
default:
Console.WriteLine("I'm at the default!");
break;
}
}
il faut bien faire attention lorseque on ecrit des saut explicites pareils car il est tres facile a entrer dans une boucle infinie ! .
En fait, le compilateur vous permet même de faire quelque chose aussi bête que cela:
je suis sûr que vous pouvez voir qu'avec cette instruction goto une fois que le programme entre dans ce bloc de code, il ne va pas le quitter ;)public enum State { One, Two, Three, Four };
public static void DoASwitch(State mystate)
{
switch (mystate)
{
case State.One:
Console.WriteLine("I'm in state one!");
goto case State.One;
}
}
OK, c'est tout pour aujourd'hui , et j'espère bien que cet Article était utile , au moins pour les gens qui ne savaient pas les possibilités de Saut entre les blocs case en c#
Aucun commentaire:
Enregistrer un commentaire