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 ledEncendido es 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

cpp
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

  1. Evaluación directa: No usamos operadores de comparación

  2. Break esencial: Sin el break, se ejecutarían todos los casos siguientes

  3. Default opcional: Maneja los casos no contemplados

  4. 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

Entradas más populares de este blog

12. Demostracion de como usar Tinkercad para simular Arduino con circuitos

11. Ejemplos Básicos de Leds y Pulsadores

Lectura de Potenciómetro con Arduino Uno en Tinkercad