Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Instrução Switch | Introdução às Instruções Condicionais
Instruções Condicionais em C++

bookInstrução Switch

A declaração switch também é uma das estruturas de controle que simplifica a tomada de decisões em seus programas. Ela oferece uma maneira eficiente de avaliar uma expressão e executar diferentes blocos de código com base no valor dessa expressão. Isso pode ser especialmente útil ao lidar com um grande número de condições de ramificação.

É projetada principalmente para funcionar com valores numéricos, como inteiros (int) e caracteres (char).

switch.h

switch.h

copy
12345678910111213141516
switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
  • A expressão é avaliada uma vez, e o programa salta para o case apropriado com base no valor da expressão;

  • Cada case representa um valor específico ou conjunto de valores que a expressão pode corresponder;

  • A declaração break é utilizada para sair do bloco switch após a execução do código de um determinado caso;

  • O default é opcional e é utilizado quando nenhum dos casos especificados corresponde à expressão. Ele atua como uma opção de captura geral.

Suponha que você seja dono de um restaurante e queira fornecer um menu com base em códigos numéricos listados. Veja a representação em código dos itens do menu.

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }

Sim, é possível realizar isso com uma simples instrução if, que ficaria semelhante ao seguinte:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324
#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }

Funcionará da mesma forma e como esperado, mas geralmente é melhor utilizar uma declaração switch, pois ela oferece uma maneira mais clara, mais legível e, principalmente, mais fácil de manter e escalável para gerenciar esse tipo de fluxo de controle.

Omitir a palavra-chave break em uma declaração switch pode resultar em um comportamento inesperado do programa, já que o código continuará executando nos casos subsequentes. No entanto, omitir intencionalmente o break pode ser utilizado para gerenciar múltiplos casos dentro do mesmo bloco de código. Essa abordagem, conhecida como fall-through, permite tratar casos relacionados em conjunto.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Tarefa

Swipe to start coding

Você está desenvolvendo um sistema de planejador semanal que retorna o nome do dia com base em seu número (1 para segunda-feira, 2 para terça-feira, etc.).

  1. Dentro da função getDayName, utilize uma declaração switch sobre dayNumber:
    • Para cada caso de 1 a 7, atribua o nome correspondente do dia ("Monday", "Tuesday", ..., "Sunday") à variável dayName.
    • Utilize a instrução break após cada caso para evitar execução sequencial.
    • Utilize um caso default para atribuir "Invalid day" se a entrada não estiver entre 1 e 7.
  2. Retorne o valor de dayName da função.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 6
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 7.69

bookInstrução Switch

Deslize para mostrar o menu

A declaração switch também é uma das estruturas de controle que simplifica a tomada de decisões em seus programas. Ela oferece uma maneira eficiente de avaliar uma expressão e executar diferentes blocos de código com base no valor dessa expressão. Isso pode ser especialmente útil ao lidar com um grande número de condições de ramificação.

É projetada principalmente para funcionar com valores numéricos, como inteiros (int) e caracteres (char).

switch.h

switch.h

copy
12345678910111213141516
switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
  • A expressão é avaliada uma vez, e o programa salta para o case apropriado com base no valor da expressão;

  • Cada case representa um valor específico ou conjunto de valores que a expressão pode corresponder;

  • A declaração break é utilizada para sair do bloco switch após a execução do código de um determinado caso;

  • O default é opcional e é utilizado quando nenhum dos casos especificados corresponde à expressão. Ele atua como uma opção de captura geral.

Suponha que você seja dono de um restaurante e queira fornecer um menu com base em códigos numéricos listados. Veja a representação em código dos itens do menu.

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }

Sim, é possível realizar isso com uma simples instrução if, que ficaria semelhante ao seguinte:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324
#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }

Funcionará da mesma forma e como esperado, mas geralmente é melhor utilizar uma declaração switch, pois ela oferece uma maneira mais clara, mais legível e, principalmente, mais fácil de manter e escalável para gerenciar esse tipo de fluxo de controle.

Omitir a palavra-chave break em uma declaração switch pode resultar em um comportamento inesperado do programa, já que o código continuará executando nos casos subsequentes. No entanto, omitir intencionalmente o break pode ser utilizado para gerenciar múltiplos casos dentro do mesmo bloco de código. Essa abordagem, conhecida como fall-through, permite tratar casos relacionados em conjunto.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Tarefa

Swipe to start coding

Você está desenvolvendo um sistema de planejador semanal que retorna o nome do dia com base em seu número (1 para segunda-feira, 2 para terça-feira, etc.).

  1. Dentro da função getDayName, utilize uma declaração switch sobre dayNumber:
    • Para cada caso de 1 a 7, atribua o nome correspondente do dia ("Monday", "Tuesday", ..., "Sunday") à variável dayName.
    • Utilize a instrução break após cada caso para evitar execução sequencial.
    • Utilize um caso default para atribuir "Invalid day" se a entrada não estiver entre 1 e 7.
  2. Retorne o valor de dayName da função.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 6
single

single

some-alt