Hasta ahora, todos los algoritmos que hemos imaginado siguen una secuencia lineal. Como una lista de tareas, las instrucciones se ejecutan una detrás de la otra, desde la primera hasta la última, sin excepción. Pero los programas realmente potentes no son tan rígidos; son capaces de reaccionar a diferentes situaciones y de cambiar su comportamiento sobre la marcha.
Para lograrlo, necesitamos gestionar el control del flujo, que no es más que el orden en que se ejecutan las instrucciones de un programa. La herramienta más básica para ello es la estructura condicional.
¿Qué es una estructura condicional? 🤔
Una estructura condicional es un bloque de código que permite a un programa decidir qué camino tomar basándose en si una condición es verdadera o falsa. Es, literalmente, un «si pasa esto, haz aquello» implementado en nuestro código.
Esta capacidad de decisión se apoya directamente en lo que vimos en entradas anteriores: las expresiones relacionales y lógicas. Estas expresiones, cuyo resultado es siempre verdadero o falso, son el motor de los condicionales.
La estructura condicional más fundamental se conoce como Si… Entonces (o If... Then en la mayoría de lenguajes).
La condición simple (Si… Entonces) ✅
La forma más básica de un condicional ejecuta un bloque de código únicamente si la condición se cumple. Si la condición es falsa, ese bloque de código simplemente se ignora y el programa continúa con la siguiente instrucción.
Veámoslo con pseudocódigo:
Proceso ComprobarAcceso
    Leer edad_usuario
    Si (edad_usuario >= 18) Entonces
        Escribir "Acceso permitido. ¡Bienvenido!"
    FinSi
    Escribir "Gracias por su visita."
FinProceso
En este ejemplo:
- Si el usuario introduce 
25, la condición25 >= 18es verdadera, por lo que el programa mostrará «Acceso permitido. ¡Bienvenido!» y después «Gracias por su visita.». - Si el usuario introduce 
16, la condición16 >= 18es falsa. El bloque dentro delSise ignora por completo y el programa solo mostrará «Gracias por su visita.». 
La condición con alternativa (Si… Entonces… Si no) ⚖️
¿Pero qué pasa si queremos que el programa haga algo específico cuando la condición no se cumple? Para eso existe la cláusula Si no (Else en inglés), que nos proporciona un camino alternativo.
Esta estructura ejecuta un bloque de código si la condición es verdadera y un bloque de código diferente si es falsa.
Modifiquemos el ejemplo anterior:
Proceso ComprobarAccesoCompleto
    Leer edad_usuario
    Si (edad_usuario >= 18) Entonces
        Escribir "Acceso permitido. ¡Bienvenido!"
    SiNo
        Escribir "Acceso denegado. Eres menor de edad."
    FinSi
    Escribir "Gracias por su visita."
FinProceso
Ahora el comportamiento es más completo:
- Si el usuario introduce 
25, se ejecuta el primer bloque («Acceso permitido…»). - Si el usuario introduce 
16, se ejecuta el segundo bloque («Acceso denegado…»). 
En ambos casos, el programa ejecuta uno de los dos bloques, nunca ambos, y después continúa con el resto de instrucciones. Se ha creado una bifurcación en el flujo de nuestro programa.
Conclusión
Las estructuras condicionales son el primer gran pilar del control del flujo. Nos permiten romper la secuencia lineal y dotar a nuestros programas de la capacidad de reaccionar a los datos. Usando el resultado verdadero o falso de las expresiones, podemos guiar la ejecución por diferentes caminos.
Con esta herramienta ya somos capaces de crear una lógica mucho más dinámica. Sin embargo, ¿qué pasa si queremos repetir una acción varias veces sin tener que escribir el mismo código una y otra vez? De eso se encarga el segundo gran pilar del control del flujo: las estructuras repetitivas o bucles, que veremos en la siguiente entrada.
¡Seguimos!


Deja una respuesta