Estrutura Switch
Parte da seção Fundamentos do Journey de C++ da Coddy — lição 29 de 74.
A instrução switch é como uma instrução if de múltiplas vias. Em vez de avaliar uma única condição, ela verifica o valor de uma variável em relação a múltiplos casos e executa o código associado ao caso correspondente.
Aqui está a estrutura básica de uma instrução switch:
switch (variable) {
case value1:
// Código a ser executado se variable for igual a value1
break;
case value2:
// Código a ser executado se variable for igual a value2
break;
// ... mais casos
default:
// Código a ser executado se nenhum caso corresponder
}- A palavra-chave
switché seguida pela variável que você deseja testar entre parênteses. - Cada
caserepresenta um valor possível da variável. - O código dentro de cada
caseé executado se a variável corresponder ao valor desse caso.
- A instrução
breaké crucial; ela sai doswitchapós um caso ser executado. Sem ela, a execução "cairia" para o próximo caso. - O caso
defaulté opcional e é executado se nenhum outro caso corresponder.
Aqui está um exemplo:
int day = 3;
std::string dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... casos para outros dias
default:
dayName = "Invalid day";
}Você também pode combinar vários casos em um só:
int day = 3;
std::string dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... casos para outros dias
default:
dayName = "Invalid day";
}Desafio
InicianteCrie um programa que receba o número de um mês (1 para Janeiro, 2 para Fevereiro, etc.) e imprima a estação a que ele pertence. Use uma instrução switch para a lógica.
As estações e seus meses correspondentes são:
- Winter: Dezembro (12), Janeiro (1), Fevereiro (2)
- Spring: Março (3), Abril (4), Maio (5)
- Summer: Junho (6), Julho (7), Agosto (8)
- Autumn: Setembro (9), Outubro (10), Novembro (11)
- Invalid month: para outras opções
Folha de consulta
A instrução switch é uma condicional de múltiplas vias que verifica uma variável em relação a vários casos:
switch (variable) {
case value1:
// Código para executar se variable for igual a value1
break;
case value2:
// Código para executar se variable for igual a value2
break;
default:
// Código para executar se nenhum caso corresponder
}Componentes principais:
case: representa um valor possível da variávelbreak: sai do switch após a execução de um caso (evita o "fall-through")default: caso opcional executado se nenhum outro caso corresponder
Você pode combinar vários casos:
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
default:
dayName = "Invalid day";
}Experimente você mesmo
#include <iostream>
int main() {
int month;
std::cin >> month;
std::string season = "";
// Escreva seu código abaixo
std::cout << season << std::endl;
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloIncremento/DecrementoPós-incremento/DecrementoAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Fundamentos de Entrada/Saída
Comando coutComando cinEntrada de StringRevisão - Até 120Revisão - Verdadeiro ou Falso3Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaRecapitulação - Inicializar VariáveisType Casting Parte 1Type Casting Parte 26Tomada de Decisão
Estrutura IfIf - ElseEstrutura SwitchOperador CondicionalRecapitulação - If ElseIf - Else Aninhado