Instruçã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
12345678910111213141516switch (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
caseapropriado com base no valor da expressão; -
Cada
caserepresenta 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
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
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
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; } }
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.).
- Dentro da função
getDayName, utilize uma declaraçãoswitchsobredayNumber:- Para cada caso de
1a7, atribua o nome correspondente do dia ("Monday","Tuesday", ...,"Sunday") à variáveldayName. - Utilize a instrução
breakapós cada caso para evitar execução sequencial. - Utilize um caso
defaultpara atribuir"Invalid day"se a entrada não estiver entre 1 e 7.
- Para cada caso de
- Retorne o valor de
dayNameda função.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 7.69
Instruçã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
12345678910111213141516switch (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
caseapropriado com base no valor da expressão; -
Cada
caserepresenta 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
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
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
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; } }
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.).
- Dentro da função
getDayName, utilize uma declaraçãoswitchsobredayNumber:- Para cada caso de
1a7, atribua o nome correspondente do dia ("Monday","Tuesday", ...,"Sunday") à variáveldayName. - Utilize a instrução
breakapós cada caso para evitar execução sequencial. - Utilize um caso
defaultpara atribuir"Invalid day"se a entrada não estiver entre 1 e 7.
- Para cada caso de
- Retorne o valor de
dayNameda função.
Solução
Obrigado pelo seu feedback!
single