[Explicação]+[Código C] Calculadora Basica em Case
Olá galera IMP,
Hoje tava olhando um código antigo que fiz no inicio da materia em C da faculdade e resolvi postar para vocês entenderem um pouco sobre o Switch e Case...
Teoria Basica:
Switch é uma forma de estrutura seletiva, dentro dos switch há o case (que significa caso). Ou seja, é quase que um if com várias possibilidades, mas com algumas diferenças importantes.
1ª Diferença: Os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma comparação. Isso limita o case à apenas valores definidos.
2ª Diferença: O switch executa seu bloco em cascata. Ou seja, se a variável indicar para o primeiro case e dentro do switch tiver 5 cases, o switch executará todos os outros 4 cases a não ser que utilizemos o comando para sair do switch. (No caso referimos ao Break, que é para dar um stop naquele bloco).
Agora vamos ver como proceder com o switch / case.
Primeiro o comando SWITCH e entre parênteses a váriavel na qual está guardado o valor que será avaliado pelo case. Então, abre-se o bloco de dados. Dentro do bloco de dados colocamos o comando CASE e logo após um valor terminando a linha com dois pontos (:).
Então, é estruturado os comando que serão executados pelo case.
Estruturadamente, seria mais ou menos isso:
SWITCH (variável){
CASE valor1:
Dados a serem executados
BREAK;
CASE valor2:
Dados a serem executados
BREAK;
}
Exemplo:
Neste programa vamos fazer uma simples calculadora que aceita até 2 valores para o calculo de números inteiros.
Código:
#include <stdio.h>
#include <stdlib.h>
int main(){ /*Inicializando*/
int op; /*Declarando variaveis*/
int t=0,x=0,y=0; /*Declarando variaveis*/
printf("Digite uma opcao:\n 1(Adicao) \n 2(Subtracao) \n 3(Multiplicacao) \n 4(Divisao) \n"); /*Lendo Opção*/
scanf("%d" ,&op); /*Dando acesso dos valores lidos para a variável*/
switch (op){ /*Iniciando comando switch*/
case 1: /*Primeira Case do programa (Adição)*/
printf("Digite primeiro valor para a adicao: \n");
scanf("%d" ,&x);
printf("Digite o outro valor para a adicao: \n");
scanf("%d" ,&y);
t=x+y;
printf("Resultado da adicao e: %d \n\n" ,t);
system ("Pause");
break; /*parada do caso*/
case 2: /*Segunda Case do programa (Subtração)*/
printf("Digite primeiro valor para subtracao: \n");
scanf("%d" ,&x);
printf("Digite o outro valor para a subtracao: \n");
scanf("%d" ,&y);
t=x-y;
printf("Resultado da subtracao e: %d \n\n" ,t);
system ("Pause");
break; /*parada do caso*/
case 3: /*Terceira Case do programa (Multiplicação)*/
printf("Digite primeiro valor para multiplicacao: \n");
scanf("%d" ,&x);
printf("Digite o outro valor para a multiplicacao: \n");
scanf("%d" ,&y);
t=x*y;
printf("Resultado da multiplicacao e: %d \n\n" ,t);
system ("Pause");
break; /*parada do caso*/
case 4: /*Quarta Case do programa (Divisão)*/
while(x==0)
{
printf("Digite primeiro valor para divisao: \n");
scanf("%d" ,&x);
}
while(y==0)
{
printf("Digite o outro valor para a divisao: \n");
scanf("%d" ,&y);
}
if(y>x)
{
t=y/x;
}
else
{
t=x/y;
}
printf("Resultado da divisao e: %d \n\n" ,t);
system ("Pause");
break; /*parada do caso*/
default: /*Case de erro se digitar uma opção fora das oferecidas*/
printf("Opcao Invalida! \n");
system ("Pause");
return 0; /*Fim*/
} /*fecha switch*/
} /*fecha todas as chaves*/
Exercício em linguagem C realizado por [Only registered and activated users can see links. Click Here To Register...](Dorcílio).
Espero que gostem...
Atenciosamente,
João Neto.