Opérateur Switch

Compare la valeur de l'expression avec les constantes de toutes les variantes de type case et passe le contrôle à l'opérateur correspondant à la valeur de l'expression. Chaque variante de case peut être marquée avec une constante entière, une constante littérale ou une expression constante. L'expression constante ne peut pas contenir de variables ou d'appels de fonctions. L'expression de l'opérateur switch doit être de type entier — int or uint.

switch(expression)
  {
   case constante: opérateurs
   case constante: opérateurs
      ...
   default: opérateurs
  }

Les opérateurs marqués avec l'étiquette default sont exécutés si aucune des constantes des opérateurs case n'est égale à la valeur de l'expression. La variante default ne doit pas nécessairement être déclarée, ni être la dernière. Si aucune des constantes ne correspond à la valeur de l'expression et que la variante default n'est pas disponible, aucune action n'est exécutée.

Les mots-clés case avec une constante ne sont que des constantes et si les opérateurs sont exécutés pour certaines variantes case, le programme exécutera ensuite les opérateurs de toutes les variantes suivantes jusqu'à ce que l'opérateur break soit rencontré. Cela permet de lier une séquence d'opérateurs avec plusieurs variantes.

Une expression constante est calculée pendant la compilation. Il n'est pas possible d'avoir deux constantes identiques dans un opérateur switch.

Exemples :

//--- Premier exemple
switch(x)
  {
   case 'A':
      Print("CASE A");
      break;
   case 'B':
   case 'C':
      Print("CASE B ou C");
      break;
   default:
      Print("NI A, B ou C");
      break;
  }
 
//---  Deuxième exemple
   string res="";
   int i=0;
   switch(i)
     {
      case 1:
         res=i;break;
      default:
         res="default";break;
      case 2:
         res=i;break;
      case 3:
         res=i;break;
     }
   Print(res);
/*
  Résultat
   default
*/

Voir aussi

Initialisation des Variables, Portée de Visibilité et Cycle de Vie des Variables, Créer et Supprimer des Objets