Você está na página 1de 7

6/12/2023

Linguagem de Programação
Switch-case
Prof. Alan Marcel
alan.marcel@ifpa.edu.br

2023

Anteriormente nesta disciplina:


1) Variáveis
1.1) Regras para nomear variáveis
1.2) Tipos de variáveis
2) Operações matemáticas
2.1) Processamento de dados (cálculos)
3) Comando de entrada de dados
4) Comandos de saída de dados
5) Operações relacionais e tabelas verdade
6) Estrutura de seleção if; if-else

1
6/12/2023

Programação
• Solução versão 3.0:
#include <stdio.h> // processamento:
int main() media = (n1 + n2 + n3) / 3;
{ // início do programa printf("\nA média é %.2f", media);
// declaração de variáveis: if (media > 0) {
float n1, n2, n3, media; printf("\nMédia positiva");
// entrada de dados: } else if (media < 0) {
printf("Informe o número 1: "); printf("\nMédia negativa");
scanf("%f", &n1); } else {
printf("Informe o número 2: "); printf("\nMédia nula");
scanf("%f", &n2); }
Veja como os espaços
printf("Informe o número 3: "); return 0; ajudam na leitura do
scanf("%f", &n3); } // fim do programa código

Programação
Vamos pensar em uma solução para este problema agora:

Construa um programa em C que peça dois números


inteiros para o usuário e uma opção. Se a opção for 1,
escreva a soma dos números; se a opção for 2, escreva a
subtração dos números; se a opção for 3, escreva a
multiplicação; se a opção for 4, escreva a divisão; se não for
nenhuma das opções, escreva a mensagem "Erro! Opção
inválida".

a) Entradas, saídas, processamentos (cálculos), leitura de dados,


escrita de mensagens já sabemos como proceder e condicionais
já sabemos como proceder, ou seja, já conseguimos resolver esse
problema com tudo que estudamos até aqui.

2
6/12/2023

Programação
• Uma possível solução:
#include <stdio.h> if (opcao == 1) {
printf("Soma: %d", (n1 + n2));
int main()
}
{ // início do programa if (opcao == 2) {
int n1, n2, opcao; printf("Subtração: %d", (n1 - n2));
printf("Entre com número 1:\n"); }
if (opcao == 3) {
scanf("%d", &n1);
printf("Mult.: %d", (n1 * n2));
printf("Entre com número 2:\n"); }
scanf("%d", &n2); if (opcao == 4) {
printf("Entre com a opção:\n"); printf("Divisão: %d", (n1 / n2));
scanf("%d", &opcao); }
if (opcao > 4 || opcao < 1) {
printf("Erro! Opção inválida");
}
} // fim do programa

Programação
• Outra possível solução:
#include <stdio.h> if (opcao == 1) {
int main() printf("Soma: %d", (n1 + n2));
} else if (opcao == 2) {
{ // início do programa
printf("Subtração: %d", (n1 - n2));
int n1, n2, opcao; } else if (opcao == 3) {
printf("Entre com número 1:\n"); printf("Mult.: %d", (n1 * n2));
scanf("%d", &n1); } else if (opcao == 4) {
printf("Entre com número 2:\n"); printf("Divisão: %d", (n1 / n2));
scanf("%d", &n2); } else {
printf("Entre com a opção:\n"); printf("Erro! Opção inválida");
scanf("%d", &opcao); }
} // fim do programa

3
6/12/2023

Estrutura switch-case
• A estrutura switch-case permite reduzir o código e torná-lo mais
"limpo" e simplificado nos casos de comparações diretas:
switch (variável de comparação)
{
case valor1: Cada case tem apenas um valor
para comparar;
instruções... Podemos ter vários cases;
break; No final do case e do default,
colocar o sinal de :
case valor2:
instruções...
break;
default: Equivalente ao else
instruções... do if-else
}

Algoritmos
Voltando para o nosso problema...

Construa um algoritmo que peça dois números inteiros para


o usuário e uma opção. Se a opção for 1, escreva a soma
dos números; se a opção for 2, escreva a subtração dos
números; se a opção for 3, escreva a multiplicação; se a
opção for 4, escreva a divisão; se não for nenhuma das
opções, escreva a mensagem "Erro! Opção inválida".

a) Como fica a solução usando escolha-caso?

4
6/12/2023

Algoritmos
• Outra possível solução (usando escolha-caso):
#include <stdio.h> switch (opcao) {
case 1:
int main()
printf("Soma: %d", (n1 + n2)); break;
{ // início do programa
case 2:
int n1, n2, opcao; printf("Subtração: %d", (n1 - n2)); break;
printf("Entre com número 1:\n"); case 3:
scanf("%d", &n1); printf("Mult.: %d", (n1 * n2)); break;
printf("Entre com número 2:\n"); case 4:
scanf("%d", &n2); printf("Divisão: %d", (n1 / n2)); break;
printf("Entre com a opção:\n"); default:
scanf("%d", &opcao); printf("Erro! Opção inválida.");
} // fim do switch-case
} // fim do programa

Dúvidas?

5
6/12/2023

Algoritmos
Exercícios – Algoritmo:
1) Desenvolva um programa em C que leia o número do dia da semana
e imprima o nome do dia da semana por extenso (usar switch-case).
Exemplos:
Digite um valor de 1 a 7: 2
Segunda-feira
Digite um valor de 1 a 7: 7
Sábado
2) Crie um programa em C que leia um número inteiro positivo (se for
negativo ou zero, mostra mensagem de erro) e escreva na tela se é
um número par ou ímpar.

Algoritmos
Exercícios – Algoritmo:
4) Crie um programa em C que leia três inteiros e imprima o maior
número informado (suponha números diferentes).
5) Criar um programa em C para o usuário entrar com um número
inteiro e informar se ele é divisível por 3 e por 7.
6) Um comerciante comprou um produto e quer vendê-lo com um lucro
de 45%, se o valor da compra for menor que R$ 20,00; caso
contrário, o lucro será de 30%. Criar um programa em C que permita
entrar com o valor do produto e imprimir o valor da venda.

6
6/12/2023

Dúvidas?

Você também pode gostar