Operador switch

Compara o valor da expressão com constantes em todas as variantes de case e passa o controle para o operador, que corresponde ao valor da expressão. Cada variante de case pode ser marcada com uma constante inteira, uma constante literal ou uma expressão constante. A expressão constante não pode conter variáveis ou chamadas de função. A expressão do operador switch deve ser do tipo inteiro — int ou uint.

switch(expressão)
  {
   case constantes: operadores
   case constantes: operadores
      ...
   default: operadores
  }

Operadores marcados pelo rótulo default são executados se nenhuma das constantes nos operadores case forem iguais ao valor da expressão. A variante default não precisa ser necessariamente declarada e não precisa ser necessariamente ser a último. Se nenhuma das constantes corresponder ao valor da expressão e a variante default não estiver presente, nenhuma ação será executada.

A palavra-chave case com uma constante são apenas rótulos, e se operadores forem executados para alguma variante case, o programa continuará a executar os operadores de todas as subseqüentes variantes até que o operador break ocorra. Isso permite vincular uma seqüência de operadores com várias variantes.

Uma expressão constante é calculada durante a compilação. Duas constantes em um operador switch não podem ter o mesmo valor.

Exemplos:

//--- Primeiro exemplo
switch(x)
  {
   case 'A':
      Print("CASE A");
      break;
   case 'B':
   case 'C':
      Print("CASE B ou C");
      break;
   default:
      Print("NOT A, B ou C");
      break;
  }
 
//---  Segundo exemplo
   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);
/*
   Result
   default
*/

Também Veja

Inicialização de Variáveis, Visibilidade Escopo e Tempo de Vida de Variáveis, Criando e Excluindo Objetos