Contenido del Curso
Fundamentos de C
Fundamentos de C
Switch, Break
Usando la Sentencia switch
Imagina que estás comprando un refresco en una máquina expendedora. Después de seleccionar la bebida deseada, en el ordenador 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 sentencia switch
.
Piense en la sentencia switch
como otra versión de la sentencia if-else
. Actúa en respuesta a valores específicos que has definido previamente.
La estructura de una sentencia switch
es la siguiente:
Consideremos el ejemplo de una máquina expendedora. Supongamos que hay tres botones para seleccionar distintos tipos de papas fritas:
- Papas fritas con sabor a queso
- Papas fritas con sabor a beicon
- Papas fritas con sabor a 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 comprobada no coincide con ninguno de los casos de la lista, se ejecuta el caso default
. Si no se proporciona ningún caso por defecto, el programa simplemente continúa su flujo.
Nota
La expresión probada en una sentencia
switch
sólo puede ser de tipo entero ochar
. No se pueden utilizar variables, strings o tipos de datos no enteros como cases.
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 completado el caso relevante, sales de ese bloque y continúas con tu programa.
Sin el comando break
, la sentencia switch
se ejecutaría continuamente, y probablemente acabarí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!