Para fazermos escolhas da linguagem de programação C++, utilizamos o comando switch que
possui sua sintaxe e fluxograma apresentados logo abaixo. O switch utiliza o comando
break como parte de sua sintaxe.
Fig. 1: Comando switch
 |
Sintaxe
switch(valor_comparar)
{
case caso_1:
//codigo aqui
break;
case caso_2:
//codigo aqui
break;
default:
//codigo aqui
break;
}
O caso default é opcional. Com esse caso, podemos executar algum trecho de código caso o valor
não seja igual a algum dos valores das cláusulas case. Por boa prática, o default é mantido para facilitar
a identificação de erros.
A linguagem C++ não permite que strings sejam utilizandos nos cases do comando
switch, limitando-se apenas ao tipo inteiro númerico.
Exemplo 1
#include <iostream>
using namespace std;
int main ()
{
int valor = 1;
switch(valor)
{
case 1: cout << 1; break;
case 3: cout << 1; break;
default: cout << "valor inválido"; break;
}
return 0;
}
Saída
1
A linguagem C++, assim como C, permite que o switch seja utilizando em conjunto com enumeradores.
O tipo de dado enum pode ser visto Tutorial C++: Enum.
Exemplo 2
#include <stdio.h>
enum opcoes {
UM,
DOIS
};
int main()
{
enum opcoes opcao= UM;
switch(opcao)
{
case UM: printf("tipo 1"); break;
case DOIS: printf("tipo 2"); break;
}
}
Saída
tipo 1
Para a execução de um mesmo trecho de código para mais de uma caso, basta adicionar as
cláusulas case em sequência, ou um abaixo do outra, separadas por (:).
Apenas um comando break é necessário.
Exemplo 3
#include <iostream>
using namespace std;
int main ()
{
int valor = 1;
switch(valor)
{
case 1:
case 3: cout << 1; break;
default: cout << "valor inválido"; break;
}
return 0;
}
Saída
1