Operador switch

Compara el valor de expresión con las constantes en todas las variantes de case y pasa el control al operador correspondiente al valor de la expresión.  Cada variante case puede ser marcada con la constante entera, constante de signo o expresión constante. La expresión constante no puede contener las variables o llamadas a funciones. La expresión del operador switch tiene que ser del tipo entero — int o uint

switch(expresión)
  {
   case constante: operadores
   case constante: operadores
      ...
   default: operadores
  }

Los operadores vinculados a la marca default se ejecutan si ninguna de las constantes en los operadores case no es igual al valor de la expresión. La variante default no tiene que ser declarada obligatoriamente y no tiene que ser última obligatoriamente. Si ninguna de las constantes corresponde al valor de la expresión y la variante default no está presente, no se ejecuta ninguna acción.

La palabra clave case y la constante son sólo marcas, y si los operadores se ejecutan para una variante case, entonces más adelante van a ejecutarse los operadores de todas las variantes posteriores hasta que se llegue al operador break. Eso permite vincular una sucesión de operadores con varias variantes.

Una expresión constante se calcula durante el proceso de compilación. Nunca dos constantes en el mismo operador switch pueden tener los mismos valores.

Ejemplos:

//--- el primer ejemplo
switch(x)
  {
   case 'A':
      Print("CASE A");
      break;
   case 'B':
   case 'C':
      Print("CASE B or C");
      break;
   default:
      Print("NOT A, B or C");
      break;
  }
 
//---  el segundo ejemplo
   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);
/*
   Resultado
   default
*/

Véase también

Inicialización de variables, Visibilidad y tiempo de vida de variables, Creación y eliminación de objetos