Italo Info


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"); op = getch(); 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 getch() que não recebe nenhum parâmetro e serve para ler um dígito do teclado sem mostrá-lo na tela. 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.

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