Escolhas múltiplas
Além da estrutura if
, podemos utilizar também uma segunda estrutura condicional: switch
. Embora compartilhem muitas características comuns, essa estrutura é mais limitada do que a anterior.
Veja uma figura que ilustra o funcionamento do switch
:
🧑💻 O código
A estrutra de um switch
é:
switch(variavel):
case valor1:
ações;
break;
case valor2:
ações;
break;
default: // caso não entre em nenhuma das anteriores
ações
Exemplo prático
Vamos acompanhar, agora, um exemplo prático de uso da estrutura condicional switch
, muito adequada para o tratamento de menus, em que o usuário pode escolher apenas uma opção.
#include <stdio.h>
int main() {
char opcao;
printf("Escolha uma opção (A, B, C ou D): ");
scanf(" %c", &opcao);
switch (opcao) {
case 'A':
printf("Você escolheu a opção A.\n");
break;
case 'B':
printf("Você escolheu a opção B.\n");
break;
case 'C':
printf("Você escolheu a opção C.\n");
break;
case 'D':
printf("Você escolheu a opção D.\n");
break;
default:
printf("Opção inválida.\n");
}
return 0;
}
🧠 Teste seus conhecimentos
Você está desenvolvendo um programa em C para determinar o dia da semana com base em um número inteiro fornecido. Qual das seguintes opções demonstra a diferença chave entre o uso de if-else e switch para esta tarefa?
- A
Utilizar uma estrutura if-else para verificar se o número está dentro de um determinado intervalo para cada dia da semana e, em seguida, imprimir o dia correspondente se a condição for atendida.
- B
Utilizar uma estrutura switch com casos para cada dia da semana, onde cada caso contém a verificação direta do número e a impressão do dia correspondente.
- C
Utilizar uma estrutura if-else para verificar se o número é par ou ímpar e, em seguida, imprimir Dia par ou Dia ímpar com base na condição.
- D
Utilizar uma estrutura if-else para verificar se o número é maior que 5 e, em seguida, imprimir Dia avançado ou, caso contrário, imprimir Dia comum.
- E
Utilizar uma estrutura switch com apenas um caso padrão que imprime Número inválido caso o número não corresponda a nenhum dia da semana.
🛑 Uso do break
Em um switch
, o uso do comando break
não é obrigatório. Entretanto, sua ausência implicará na execução de todos comandos seguintes, até o próximo break
, independentemente do atendimento às cláusulas case
.
Observe o código abaixo:
#include <stdio.h>
int main() {
char opcao;
printf("Escolha uma opção (A, B, C ou D): ");
scanf(" %c", &opcao);
switch (opcao) {
case 'A':
printf("Você escolheu a opção A.\n");
// break;
case 'B':
printf("Você escolheu a opção B.\n");
break;
case 'C':
printf("Você escolheu a opção C.\n");
break;
case 'D':
printf("Você escolheu a opção D.\n");
break;
default:
printf("Opção inválida.\n");
}
return 0;
}
🧠 Teste seus conhecimentos
Qual será a saída do programa apresentado acima?
- A
Você escolheu a opção A.
- B
Você escolheu a opção B.
- C
Você escolheu a opção A. Você escolheu a opção B.
- D
Você escolheu a opção D.
- E
O programa não será executado.
📖 Bibliografia
Livros
- Backes, A. (2018). Linguagem C - Completa e Descomplicada.