C - declaração switch

UMA switchdeclaração permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. Cada valor é chamado de caso, e a variável que está sendo ligada é verificada para cadaswitch case.

Sintaxe

A sintaxe para um switch declaração na linguagem de programação C é a seguinte -

switch(expression) {

   case constant-expression  :
      statement(s);
      break; /* optional */
	
   case constant-expression  :
      statement(s);
      break; /* optional */
  
   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

As seguintes regras se aplicam a um switch declaração -

  • o expression usado em um switch declaração deve ter um tipo integral ou enumerado, ou ser de um tipo de classe em que a classe tem uma única função de conversão para um tipo integral ou enumerado.

  • Você pode ter qualquer número de declarações de caso em um switch. Cada caso é seguido pelo valor a ser comparado e dois pontos.

  • o constant-expression para um caso, deve ser do mesmo tipo de dados que a variável no switch e deve ser uma constante ou literal.

  • Quando a variável que está sendo ativada é igual a um caso, as instruções após esse caso serão executadas até um break declaração é alcançada.

  • Quando um break a instrução for alcançada, a chave será encerrada e o fluxo de controle pula para a próxima linha após a instrução switch.

  • Nem todo caso precisa conter um break. Se nãobreakaparecer, o fluxo de controle cairá para os casos subsequentes até que uma pausa seja alcançada.

  • UMA switch declaração pode ter um opcional defaultcaso, que deve aparecer no final do switch. O caso padrão pode ser usado para executar uma tarefa quando nenhum dos casos for verdadeiro. Nãobreak é necessário no caso padrão.

Diagrama de fluxo

Exemplo

#include <stdio.h>
 
int main () {

   /* local variable definition */
   char grade = 'B';

   switch(grade) {
      case 'A' :
         printf("Excellent!\n" );
         break;
      case 'B' :
      case 'C' :
         printf("Well done\n" );
         break;
      case 'D' :
         printf("You passed\n" );
         break;
      case 'F' :
         printf("Better try again\n" );
         break;
      default :
         printf("Invalid grade\n" );
   }
   
   printf("Your grade is  %c\n", grade );
 
   return 0;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Well done
Your grade is B