Instrução switch C ++

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 sendo ativada é verificada para cada caso.

Sintaxe

A sintaxe para um switch declaração em 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 uma instrução switch -

  • 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 uma instrução break é alcançada, o switch termina e o fluxo de controle pula para a próxima linha após a instrução switch.

  • Nem todo caso precisa conter uma pausa. Se nenhuma interrupção aparecer, o fluxo de controle cairá para os casos subsequentes até que uma interrupção 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. Nenhuma pausa é necessária no caso padrão.

Diagrama de fluxo

Exemplo

#include <iostream>
using namespace std;
 
int main () {
   // local variable declaration:
   char grade = 'D';

   switch(grade) {
      case 'A' :
         cout << "Excellent!" << endl; 
         break;
      case 'B' :
      case 'C' :
         cout << "Well done" << endl;
         break;
      case 'D' :
         cout << "You passed" << endl;
         break;
      case 'F' :
         cout << "Better try again" << endl;
         break;
      default :
         cout << "Invalid grade" << endl;
   }
   cout << "Your grade is " << grade << endl;
 
   return 0;
}

Isso produziria o seguinte resultado -

You passed
Your grade is D