C++ oferece um mecanismo de controle conveniente para selecionar uma série de opções. A declaração switch.
Fluxo e formato da declaração:
switch(expressão)
{
case const1:
//aqui vai a expressão correspondente == const1
break;
case const2:
//aqui vai a expressão correspondente == const2
break;
case const3:
//aqui vai a expressão correspondente == const3
break;
default:
//aqui vai a expressão final
}
Quando encontra a declaração switch, C++ avalia a expressão. Feito isto, ele passa o controle para o comando da expressão do mesmo valor correspondente e continua até encontrar break. O break transfere o controle para } no final da declaração switch.
Se nenhum dos comando combinar, o controle é passado para o comando default por padrão.
O controle default padrão é opcional, mas é uma boa pratica utiliza-lo. #FicaAdica.
Uma declaração switch é diferente de uma série de declarações if. Apenas constantes são permitidas após a palavra chave case, ou expressões que possam ser avaliadas na montagem. Não é possível fornecer uma expressão depois de um comando, pois o valor não é conhecido até o programa ser executado.
Vale lembrar, que o break também é opcional, porém, sem ele, o controle "pula" de um comando para o outro. Seria útil não utilizar a declaração break quando dois ou mais comandos são tratados da mesma maneira.
Para fixar, vamos criar uma calculadora simples implementada com switch.
------------------------------------------------------------------------------------------------------------
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
int nOperador1;
int nOperador2;
char cOperador;
cout << "Entre com o primeiro e o segundo valor\n"
<< "As operacoes permitidas sao: +, -, *, / ou %." << endl;
cin >> nOperador1 >> cOperador >> nOperador2;
cout << nOperador1 << " "
<< cOperador << " "
<< nOperador2 << " = ";
switch(cOperador)
{
case'+':
cout << nOperador1 + nOperador2;
break;
case'-':
cout << nOperador1 - nOperador2;
break;
case'*':
case'x':
case'X':
cout << nOperador1 * nOperador2;
break;
case'/':
cout << nOperador1 / nOperador2;
break;
case'%':
cout << nOperador1 % nOperador2;
break;
default:
cout << "Operacao Invalida";
}
cout << endl;
system("PAUSE");
return 0;
}
------------------------------------------------------------------------------------------------------------
Perceba que o programa inicia repetindo o que foi digitado. Repetir o que foi digitado é uma boa prática de programação, pois garante ao usuário que ele digitou correto, ou não.
Os comandos: x e X foram incluídos pois são símbolos comuns da multiplicação. Do contrário, o comando entraria no default retornando como operação inválida.
Nenhum comentário:
Postar um comentário