Conteúdo do Curso
Noções Básicas de C
Noções Básicas de C
Switch, break
Utilizando a Instrução switch
Imagine que você está comprando um refrigerante em uma máquina de venda automática. Após selecionar a bebida desejada, no interior do computador da máquina, a variável user_input
assume um dos vários valores predefinidos. Cada uma dessas opções é chamada de case
, e é aqui que a instrução switch
entra em cena.
Pense na instrução switch
como uma outra versão da instrução if-else
. Ela atua em resposta a valores específicos que você definiu previamente.
Veja como a estrutura de uma instrução switch
é apresentada:
Vamos considerar um exemplo de máquina de venda automática. Suponha que existam três botões para selecionar diferentes tipos de batatas:
- Cheese-flavored chips
- Bacon-flavored chips
- Chili-flavored chips
Main
#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }
Caso a expressão testada não corresponda a nenhum dos casos listados, o caso default
é executado. Se não for fornecido um caso default
, o programa simplesmente continua seu fluxo.
Nota
A expressão testada em uma instrução
switch
só pode ser do tipo inteiro ouchar
. Você não pode usar variáveis, strings ou tipos de dados não inteiros como cases.
Main
#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }
Papel do break
O comando break
interrompe a execução do bloco atual e avança para o próximo segmento de código. Essencialmente, uma vez que o caso relevante é concluído, você sai desse bloco e continua com seu programa.
Sem o comando break
, a instrução switch
funcionaria continuamente, e você provavelmente acabaria com resultados não intencionais.
Main
#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }
Na ausência do comando break
, o programa começa a ser executado imediatamente após encontrar um caso correspondente e continua até encontrar um break ou até chegar ao final do switch.
Obrigado pelo seu feedback!