Contenido del Curso
Fundamentos de C
Fundamentos de C
Switch, Break
Usando la declaración switch
Imagina que estás comprando un refresco de una máquina expendedora. Después de seleccionar tu bebida deseada, en lo profundo de la computadora de la máquina expendedora, la variable user_input
toma uno de varios valores predefinidos. Cada una de estas opciones se denomina case
, y aquí es donde entra en juego la declaración switch
.
Piensa en la declaración switch
como otra versión de la declaración if-else
. Actúa en respuesta a valores específicos que has definido previamente.
Así es como se ve la estructura de una declaración switch
:
Consideremos un ejemplo de máquina expendedora. Supongamos que hay tres botones para seleccionar diferentes tipos de papas fritas:
- Papas fritas sabor queso;
- Papas fritas sabor tocino;
- Papas fritas sabor chile.
Main
#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }
Si la expresión probada no coincide con ninguno de los casos listados, se ejecuta el caso default
. Si no se proporciona un caso default
, el programa simplemente continúa su flujo.
Nota
La expresión probada en una declaración
switch
solo puede ser de tipo entero ochar
. No puedes usar variables, cadenas o tipos de datos no enteros como casos.
Main
#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }
El papel de break
El comando break
detiene la ejecución del bloque actual y pasa al siguiente segmento de código. Esencialmente, una vez que el caso relevante está completo, sales de ese bloque y continúas con tu programa.
Sin el comando break
, la declaración switch
se ejecutaría continuamente, y probablemente terminarías con resultados no deseados.
Main
#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }
En ausencia del comando break
, el programa comienza a ejecutarse inmediatamente después de encontrar un caso coincidente y continúa hasta que encuentra un break o llega al final del switch.
¡Gracias por tus comentarios!