Introducción a la programación

Estructuras condicionales: control de flujo (1)

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ón 25 >= 18 es verdadera, por lo que el programa mostrará «Acceso permitido. ¡Bienvenido!» y después «Gracias por su visita.».
  • Si el usuario introduce 16, la condición 16 >= 18 es falsa. El bloque dentro del Si se 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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.