Dominando Switch-Case em C++: Sintaxe, Uso e Exemplos Práticos
O que é um switch?
A instrução switch avalia uma variável uma vez e desvia a execução para o rótulo case correspondente, simplificando a tomada de decisão multi-caminho.
Pense nela como uma alternativa limpa e eficiente a uma longa cadeia if…else if… que seleciona blocos de código baseados no valor da variável.
Neste tutorial C++ você aprenderá:
- O que é uma instrução switch
- Quando usar um switch
- O papel da palavra-chave
break - Sintaxe e estrutura
- Exemplos práticos
Quando Usar um switch?
Um switch é ideal quando uma única variável deve ser comparada contra um conjunto fixo de constantes. Ele produz código mais claro e rápido que uma longa cadeia if…else if….
A Palavra-chave break
Dentro de um switch, break termina o case atual, prevenindo fall-through (execução em cascata) para cases subsequentes. Se omitido, a execução continua no próximo case.
Quando o compilador encontra break, o controle salta para a instrução seguinte ao fechamento do switch.
Sintaxe
Estrutura típica:
switch (variável) {
case valor1:
// código
break;
case valor2:
// código
break;
default:
// código
}
- variável – a expressão sendo avaliada.
- case – um valor constante para comparar.
- break – para a execução do bloco switch.
- default – opcional; executa quando nenhum case corresponde.
Exemplo 1
#include <iostream>
using namespace std;
int main() {
int x = 20;
switch (x) {
case 10:
cout << "X é 10";
break;
case 20:
cout << "X é 20";
break;
case 30:
cout << "X é 30";
break;
default:
cout << "X não é 10, 20 ou 30";
break;
}
return 0;
}
Saída:
X é 20
Explicação do código:
- Inclui
<iostream>para habilitar I/O de console. - Usa o namespace
stdpara brevidade. - Define
main()como ponto de entrada. - Declara
int x = 20;. - Aplica
switch(x)para compararxcontra constantes. - Case 10: imprime "X é 10".
- Case 20: imprime "X é 20".
- Case 30: imprime "X é 30".
- Default: lida com valores diferentes de 10, 20, 30.
- Cada case termina com
break;para evitar fall-through. - Retorna 0 para indicar execução bem-sucedida.
Exemplo 2
#include <iostream>
using namespace std;
int main() {
int escolha;
cout << "Digite 1, 2 ou 3: ";
cin >> escolha;
switch (escolha) {
case 1:
cout << "Escolha 1";
break;
case 2:
cout << "Escolha 2";
break;
case 3:
cout << "Escolha 3";
break;
default:
cout << "Não é 1, 2 ou 3";
break;
}
}
Saída (para entrada 2):
Escolha 2
Explicação do código:
- Inclui
<iostream>para I/O. - Usa namespace
std. - Declara
int escolha;. - Solicita ao usuário: "Digite 1, 2 ou 3: ".
- Lê entrada em
escolha. - Switch em
escolhapara ramificar para o case correspondente. - Case 1 imprime "Escolha 1".
- Case 2 imprime "Escolha 2".
- Case 3 imprime "Escolha 3".
- Default lida com qualquer outra entrada.
- Cada case termina com
break;.
Resumo
- Um switch fornece alternativa concisa a
if…else if…aninhados. - Sua sintaxe é mais limpa e execução geralmente mais rápida.
- Use quando uma variável deve ser comparada contra múltiplos valores constantes.
- Cada
casecompara a variável a um valor distinto. - A palavra-chave
breakprevine fall-through não intencional. - Uma cláusula
defaultopcional lida com cases não correspondidos.
Linguagem C
- Circuito com Chave: Guia Prático para Circuitos Elétricos Básicos
- Dominando a Instrução Switch em C#: Sintaxe, Exemplos e Boas Práticas
- Instrução Break em C#: Como e Quando Usar
- Operadores em C++ Explicados: Tipos, Exemplos e Programas Práticos
- Dominando Switch-Case em C++: Sintaxe, Uso e Exemplos Práticos
- Dominando Alocação Dinâmica de Arrays em C++: Guia Prático com Exemplos de Código
- Structs em C++ Explicadas com Exemplo Prático
- Dominando std::map em C++: Guia Completo com Exemplos de Código
- Dominando std::list em C++: Sintaxe, Funções e Exemplos Práticos
- C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso