Comando de decisão (Switch)
Como vimos na aula anterior, quando é necessário executar determinado conjunto de instruções, apenas, se determinada condição for verdadeira, podemos utilizar o if/alse. Inclusive, há outra alternativa ao if/else, o switch/case. Veja o exemplo abaixo:
#include <stdio.h>
#include <math.h>
int main() {
char op;
float base, altura, raio, resultado;
printf("Calculadora de areas");
printf("\n(1) - Retangulo");
printf("\n(2) - Triangulo");
printf("\n(3) - Circulo");
printf("\n\n");
printf( "Informe a opcao: " );
fflush( stdin );
fflush( stdout );
op = getchar();
printf( "\n" );
switch( op ) {
case '1':
printf("Informe a base: ");
scanf("%f",&base);
printf("Informe a altura: ");
scanf("%f",&altura);
resultado = base*altura;
printf("\nA area do retangulo eh: %.2f",resultado);
break;
case '2':
printf("Informe a base: ");
scanf("%f",&base);
printf("Informe a altura: ");
scanf("%f",&altura);
resultado = (base*altura)/2;
printf("\nA area do triangulo eh: %.2f",resultado);
break;
case '3':
printf("Informe o raio: ");
scanf("%f",raio);
resultado = M_PI * ( raio * raio );
printf("\nA area do circulo eh: %.2f",resultado);
break;
default:
printf("\nOpcao invalida!");
}
return 0;
}
No exemplo acima é impresso um menu de calculadora de áreas. Logo após, é utilizada a função getchar() que não recebe nenhum parâmetro e serve para ler um dígito do teclado. Depois da leitura do caractere, é declarada a intrução switch/case. Repare que os cases são seguidos por valores chars, isso porque a variável op chamada no switch é do tipo char, se fosse inteira, os números teriam de não estar entre aspas. É importante esclarecer que cada case deve ser finalizado com um break. Preste atenção ao default declarado no final do comando. O default é semelhante ao else do if, caso a opção lida seja diferente dos valores verificados com cases, o bloco default é executado.
Repare também na chamada a fflush antes da utilização da função getchar. Isto é necessário para limpar os bufferes de entrada e saída padrões e a leitura funcionar corretamente.
Exercício
Faça uma calculadora semelhante ao exemplo anterior, sendo que, ao invés de cálculos de áreas, deve realizar cálculos aritméticos (Soma, Subtração, Multiplicação e Divisão). Por exemplo:
Calculadora aritmetica
1 - Soma
2 - Subtracao
3 - Multiplicacao
4 - Divisao
Informe o primeiro numero: 3
Informe o segundo numero: 4
O resultado da multiplicacao eh: 12