Essa estrutura trabalha com uma variável, que, para cada valor vai gerar um caso (case).
Exemplo:
main() { int op = 1; switch(op) { case 1: printf("Um"); break; case 2: printf("Dois"); break; } getch(); }
Caso "op" tenha o valor 1 será impresso "Um", caso "op" tenha o valor 2 será impresso "Dois". Devemos colocar o break ao final de cada caso.
Se "op" estiver com um valor não tratado nos casos nada será executado. Podemos tratar isso colocando o default que é executado se o valor não existe em nenhum dos casos.
main() { int op = 3; switch(op) { case ((1) || (2)): printf("Um ou dois"); break; case 0: printf("Zero"); break; default: printf("Invalido."); } getch(); }
Observe que essa estrutura switch/case é muito parecida com o if/else, porém, mais organizado.
Porém, switch/case trata uma única variável, sendo assim, o if/else não é dispensado, devemos analisar qual das duas estruturas deve ser utilizada.d
Observe que neste segundo exemplo ainda foi utilizado na linha 6 o operador lógico OR (||). Caso seja 1 ou 2 será impresso "Um ou dois".
Calculadora de operações básicas com switch / case:
int main() { float a, b, r; char op; printf("+: soma \t-: subtracao \t/: divisao \t*: multiplicacao\n"); printf("Digite a operacao: "); scanf("%f %c %f", &a, &op, &b); switch(op) { case '+' : r = a + b; break; case '-' : r = a - b; break; case '*' : r = a * b; break; case '/' : { if(b != 0) r = a / b; else { printf("#ERRO# DIVISAO POR 0."); return 1; } break; } } printf("Resultado: %.2f", r); getch(); return 0; }
Nenhum comentário:
Postar um comentário