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
caseapropiado 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 instrucción 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 instrucción 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 instrucción switch puede provocar un comportamiento inesperado del programa, ya que el código continuará ejecutándose en los casos siguientes. Sin embargo, omitir intencionalmente 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á 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, utilice una declaraciónswitchsobredayNumber:- Para cada caso del
1al7, asigne el nombre correspondiente del día ("Monday","Tuesday", ...,"Sunday") a la variabledayName. - Utilice la instrucción
breakdespués de cada caso para evitar la ejecución continua. - Utilice un caso
defaultpara asignar"Invalid day"si la entrada no está entre 1 y 7.
- Para cada caso del
- Devuelva el valor de
dayNamedesde la función.
Solución
¡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
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
caseapropiado 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 instrucción 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 instrucción 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 instrucción switch puede provocar un comportamiento inesperado del programa, ya que el código continuará ejecutándose en los casos siguientes. Sin embargo, omitir intencionalmente 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á 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, utilice una declaraciónswitchsobredayNumber:- Para cada caso del
1al7, asigne el nombre correspondiente del día ("Monday","Tuesday", ...,"Sunday") a la variabledayName. - Utilice la instrucción
breakdespués de cada caso para evitar la ejecución continua. - Utilice un caso
defaultpara asignar"Invalid day"si la entrada no está entre 1 y 7.
- Para cada caso del
- Devuelva el valor de
dayNamedesde la función.
Solución
¡Gracias por tus comentarios!
single