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