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