62. La estructura de decisión Switch
Repasando un poco lo que vimos en la lección anterior, teníamos algo que se llaman los IFs anidados, y esto es lo que provoca que agreguemos complejidad a nuestro código.
Si puedes apreciar, lo que estamos haciendo aquí es evaluar una variable la cual vamos comparando y vamos llevando a cabo diferentes acciones de acuerdo a si se cumple o no dicha condición.
En el código de Arduino tenemos aquí lo que es un conjunto de IFs que en este caso puede parecer un poco sencillo ya que tenemos una instrucción o la ejecución de una sola instrucción, pero si tuviéramos un conjunto de instrucciones que quisiéramos ejecutar en dado caso de que se cumpliera o no una de estas condiciones, ya sería un código con más complejidad.
La alternativa: Switch
Para solventar esta problemática tenemos lo que es una alternativa que es la estructura llamada switch. La estructura de control llamada switch tiene esta forma que vemos aquí. Como puedes apreciar, tenemos de una forma más sencilla representada esta problemática que teníamos aquí, mientras que aquí vamos anidando el conjunto de evaluaciones.
En este caso únicamente tenemos aquí lo que es un árbol que se encuentra a la misma altura para cada una de las evaluaciones, y podemos ver de forma sencilla el resultado cuando se cumple cierta condición.
Analizando el diagrama
Vamos a ver más de cerca este diagrama. Tenemos aquí lo que es la creación de una variable llamada ledEncendido que en este caso tiene la asignación de un número 4, ya que lo que hacemos es evaluar la variable ledEncendido y cómo llevamos a cabo esta evaluación como si fuera precisamente una instrucción IF.
Preguntamos:
¿El valor de
ledEncendidoes igual a 1? → Encendemos el número 1¿Es igual a 2? → Encendemos el número 2
Como puedes apreciar, simplemente vamos evaluando las diferentes expresiones que tenemos aquí y tenemos inclusive una instrucción que nos permite especificar en caso de que ninguna de las anteriores evaluaciones se cumpla (en este caso, prendemos todos los LEDs).
Implementación en código
int ledEncendido = 4;
void setup() {
configurarPines();
switch(ledEncendido) {
case 1:
digitalWrite(LED1, HIGH);
break;
case 2:
digitalWrite(LED2, HIGH);
break;
case 3:
digitalWrite(LED3, HIGH);
break;
case 4:
digitalWrite(LED4, HIGH);
break;
default:
encenderTodosLosLEDs();
break;
}
}Puntos clave
Estructura básica: Usamos
switch(variable)para indicar qué variable evaluarCasos: Cada
case valor:representa una condición a compararBreak: Es fundamental para evitar que se ejecuten todos los casos siguientes
Default: Se ejecuta cuando ningún caso coincide con el valor evaluado
Ventajas sobre IFs anidados
Código más limpio y organizado
Más fácil de leer y mantener
Menos propenso a errores en comparaciones complejas
Más eficiente en términos de ejecución
¿Has utilizado la estructura switch en tus proyectos? ¡Comparte tus experiencias en los comentarios!
Comentarios
Publicar un comentario