73. Explicación del ciclo While
Del IF anidado al Switch: Simplificando nuestro código
Repasando un poco lo que vemos en la elección anterior, teníamos algo que se llaman los IFs anidados y esto es lo que ha ido provocando realmente llevar a cabo lo que es agregar 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.
El problema de los IFs anidados
En el código de Arduino tenemos aquí lo que es un conjunto de IF 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 solución: estructura 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 del IF.
Preguntamos:
¿El valor de
ledEncendidoes igual a 1? → Encendemos el número 1¿Es igual a 2? → Encendemos el número dos
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, y en este caso prendemos todos los LEDs.
Implementación en código
int ledEncendido = 4;
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:
// Enciende todos los LEDs
encenderTodosLosLEDs();
break;
}Puntos clave del Switch
Evaluación directa: No usamos operadores de comparación
Break esencial: Sin el
break, se ejecutarían todos los casos siguientesDefault opcional: Maneja los casos no contemplados
Organización clara: Código más legible y mantenible
Conclusión
La estructura switch nos permite manejar múltiples condiciones de manera más organizada y eficiente que los IFs anidados, especialmente cuando trabajamos con evaluaciones de igualdad contra diferentes valores de una misma variable.
Comentarios
Publicar un comentario