Instrucción Switch
La sentencia switch es también una de las estructuras de control que simplifica la toma de decisiones en los programas. Proporciona una manera eficiente de evaluar una expresión y ejecutar diferentes bloques de código según el valor de esa expresión. Esto resulta especialmente útil al manejar un gran número de condiciones ramificadas.
Está diseñada principalmente para trabajar con valores numéricos, como enteros (int) y 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 }
-
La expresión se evalúa una vez y el programa salta al
casecorrespondiente según el valor de la expresión; -
Cada
caserepresenta un valor específico o un conjunto de valores que la expresión podría coincidir; -
La sentencia
breakse utiliza para salir del bloque switch después de que se haya ejecutado el código de un caso en particular; -
El
defaultes opcional y se utiliza cuando ninguno de los casos especificados coincide con la expresión. Actúa como una opción de captura general.
Suponga que es propietario de un restaurante y desea proporcionar un menú basado en códigos numéricos listados. Aquí está la representación en código de los elementos del menú.
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; } }
Sí, esto se puede lograr con una simple sentencia if, y se vería de la siguiente manera:
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á de la misma manera y como se espera, pero generalmente es preferible utilizar una sentencia switch porque ofrece una forma más clara, más legible y, lo más importante, más fácil de mantener y escalable para gestionar este tipo de flujo de control.
Omitir la palabra clave break en una sentencia switch puede provocar un comportamiento inesperado del programa, ya que el código continuará ejecutándose en los casos siguientes. Sin embargo, omitir intencionadamente break puede utilizarse para gestionar varios casos dentro del mismo bloque de código. Este enfoque, conocido como fall-through, permite manejar casos relacionados juntos.
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
Estás desarrollando un sistema de planificador semanal que devuelve el nombre del día según su número (1 para lunes, 2 para martes, etc.).
- Dentro de la función
getDayName, utiliza una instrucciónswitchsobredayNumber:- Para cada caso del
1al7, asigna el nombre correspondiente del día ("Monday","Tuesday", ...,"Sunday") a la variabledayName. - Usa la instrucción
breakdespués de cada caso para evitar la ejecución en cascada. - Utiliza un caso
defaultpara asignar"Invalid day"si la entrada no está entre 1 y 7.
- Para cada caso del
- Devuelve el valor de
dayNamedesde la función.
Ejemplo
getDayName(1) → "Monday"
getDayName(5) → "Friday"
getDayName(9) → "Invalid day number"
Solución
solution.cpp
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you show me an example of a switch statement in code?
What happens if I forget to include a break statement in a switch case?
Can you explain more about the fall-through behavior in switch statements?
Awesome!
Completion rate improved to 7.69
Instrucción Switch
Desliza para mostrar el menú
La sentencia switch es también una de las estructuras de control que simplifica la toma de decisiones en los programas. Proporciona una manera eficiente de evaluar una expresión y ejecutar diferentes bloques de código según el valor de esa expresión. Esto resulta especialmente útil al manejar un gran número de condiciones ramificadas.
Está diseñada principalmente para trabajar con valores numéricos, como enteros (int) y 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 }
-
La expresión se evalúa una vez y el programa salta al
casecorrespondiente según el valor de la expresión; -
Cada
caserepresenta un valor específico o un conjunto de valores que la expresión podría coincidir; -
La sentencia
breakse utiliza para salir del bloque switch después de que se haya ejecutado el código de un caso en particular; -
El
defaultes opcional y se utiliza cuando ninguno de los casos especificados coincide con la expresión. Actúa como una opción de captura general.
Suponga que es propietario de un restaurante y desea proporcionar un menú basado en códigos numéricos listados. Aquí está la representación en código de los elementos del menú.
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; } }
Sí, esto se puede lograr con una simple sentencia if, y se vería de la siguiente manera:
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á de la misma manera y como se espera, pero generalmente es preferible utilizar una sentencia switch porque ofrece una forma más clara, más legible y, lo más importante, más fácil de mantener y escalable para gestionar este tipo de flujo de control.
Omitir la palabra clave break en una sentencia switch puede provocar un comportamiento inesperado del programa, ya que el código continuará ejecutándose en los casos siguientes. Sin embargo, omitir intencionadamente break puede utilizarse para gestionar varios casos dentro del mismo bloque de código. Este enfoque, conocido como fall-through, permite manejar casos relacionados juntos.
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
Estás desarrollando un sistema de planificador semanal que devuelve el nombre del día según su número (1 para lunes, 2 para martes, etc.).
- Dentro de la función
getDayName, utiliza una instrucciónswitchsobredayNumber:- Para cada caso del
1al7, asigna el nombre correspondiente del día ("Monday","Tuesday", ...,"Sunday") a la variabledayName. - Usa la instrucción
breakdespués de cada caso para evitar la ejecución en cascada. - Utiliza un caso
defaultpara asignar"Invalid day"si la entrada no está entre 1 y 7.
- Para cada caso del
- Devuelve el valor de
dayNamedesde la función.
Ejemplo
getDayName(1) → "Monday"
getDayName(5) → "Friday"
getDayName(9) → "Invalid day number"
Solución
solution.cpp
¡Gracias por tus comentarios!
single