O comando switch case em C

Por: Eduardo Casavella
É uma forma de reduzir a complexidade de vários if … else encadeados.

É muito utilizado, principalmente para uso em estruturas de menu.

O conteúdo de uma variável é comparado com um valor constante, e caso a comparação seja verdadeira, um determinado comando é executado.
Pseudocódigo:

Em português estruturado o comando escolha…caso equivale ao switch…case

Veja estrutura escolha … caso

Escolha (Variável)
Inicio
   Caso (Valor1): 
      Instruções;
   
   Caso (Valor2): 
     Instruções;
   
   Caso (ValorN): 
     Instruções;
Fim;

Sintaxe do comando switch case em linguagem C

switch (variável)
{
   case constante1:
     Instruções;
   break;

   case constante2:
     Instruções;
   break;

   default
     Instruções;
}

Utilização

Vamos construir um programa para verificar o dia da semana a fim de exemplificar a utilização do switch…case.

O usuário vai digitar um número e o programa vai retornar o dia da semana equivalente ao número.

Exemplo:
[sourcecode language=”cpp”]

#include
#include
int main (void )
{
int valor;

printf (“Digite um valor de 1 a 7: “);
scanf(“%d”, &valor);

switch ( valor )
{
case 1 :
printf (“Domingo\n”);
break;

case 2 :
printf (“Segunda\n”);
break;

case 3 :
printf (“Terça\n”);
break;

case 4 :
printf (“Quarta\n”);
break;

case 5 :
printf (“Quinta\n”);
break;

case 6 :
printf (“Sexta\n”);
break;

case 7 :
printf (“Sabado\n”);
break;

default :
printf (“Valor invalido!\n”);
}

getch();
return 0;
}

[/sourcecode]

 

Tela de execução

Tela execução comando Switch

Tela de execução do comando Switch Case C

 

Explicação do código:

A instrução break termina a execução do switch e o programa continua a executar na instrução seguinte.

O uso do break evita testar as demais alternativas de forma desnecessária quando uma opção verdadeira já foi encontrada.

O comando default exibe uma mensagem, caso nenhuma das alternativas anteriores seja verdadeira.
Agora veja, como ficaria o mesmo programa usando comandos if else aninhados (encadeados).
[sourcecode language=”cpp”]

#include
#include
int main (void )
{
int valor;

printf (“Digite um valor de 1 a 7: “);
scanf(“%d”, &valor);

if (valor == 1)
printf (“Domingo\n”);
else
if (valor == 2)
printf (“Segunda\n”);
else
if (valor == 3)
printf (“Terça\n”);
else
if (valor == 4)
printf (“Quarta\n”);
else
if (valor == 5)
printf (“Quinta\n”);
else
if (valor == 6)
printf (“Sexta\n”);
else
if (valor == 7)
printf (“Sabado\n”);
else
printf (“Valor invalido!\n”);

getch();
return 0;
}

[/sourcecode]

 

Importante:

Não são aceitas expressões condicionais no comando switch…case, somente são aceitos valores constantes.

Esta é um diferença bem grande quando comparado ao comando if…else.

Portanto caso tenha que testar uma condição você terá que usar if…else ao invés do switch…case.
Até a próxima!

10 respostas a O comando switch case em C