programacion-condicional-if-else

El condicional IF-ELSE

El condicional IF-ELSE es una evolución del IF sencillo, que nos permite añadir un código a ejecutar cuando la condición es false.

De forma coloquial, el condicional IF-ELSE significa

Si pasa esto 🡆 haz esto

Si no 🡆 haz esto otro

Que, puesto en formato código, sería algo así,

if(condicion)
{
	// acciones a ejecutar si condicion es true
}
else
{
	// acciones a ejecutar si condicion es false
}

Y en forma de diagrama de flujo tendría algo así como esta pinta

programacion-if-else

Esquema IF-ELSE

Ejemplos de condicionales IF-ELSE en distintos lenguajes

Vamos a ver un ejemplo de condicional IF-ELSE. En este ejemplo supongamos que tenemos que evaluar la nota de examen.

  • Si es mayor que 5, el alumno ha aprobado 🟢
  • Si es menor que 5, el alumno ha suspendido 🔴

En el caso de C++, C#, Java, Kotlin o JavaScript, este condicional IF-ELSE tiene la siguiente pinta,

if (nota_examen >= 5)
{
	// mostrar mensaje '¡Enhorabuena! Has aprobado' 🟢
}
else
{
	// mostrar mensaje 'Lo siento, has suspendido' 🔴
}

En PHP un condicional IF es idéntico, con la peculiaridad de que las variables se anteceden con ’$’

if ($nota_examen >= 5) 
{
    // mostrar mensaje '¡Enhorabuena! Has aprobado' 🟢
}
else 
{
   // mostrar mensaje 'Lo siento, has suspendido' 🔴
}

Por otro lado, Python tiene la siguiente forma

if nota_examen >= 5:
    # mostrar mensaje '¡Enhorabuena! Has aprobado' 🟢
else:
	# mostrar mensaje 'Lo siento, has suspendido' 🔴

Y en VB, que tiene una sintaxis algo más larga porque aspira a tener un lenguaje natural

If nota_examen >= 5 Then
	' mostrar mensaje '¡Enhorabuena! Has aprobado' 🟢
Else
	' mostrar mensaje 'Lo siento, has suspendido' 🔴
End If

Por poner un ejemplo algo más “raro”, en SQL un condicional tiene la siguiente forma

CASE
	WHEN @nota_examen >= 5 THEN '¡Enhorabuena! Has aprobado 🟢'
	ELSE 'Lo siento, has suspendido 🔴'
END AS mensaje;

Es decir, básicamente la estructura de un condicional IF es idéntica en la mayoría de lenguajes, más allá de algunas peculiaridades de sintaxis de cada uno de ellos.

Funcionamiento interno Avanzado

Internamente, el flujo de control del programa es similar al del bloque IF. El flujo de control encuentra un salto condicional, que evalúa una cierta condición.

Si la condición es cierta, el flujo continúa con las instrucciones del cuerpo del IF. Si es falsa, salta al cuerpo del ELSE.

programacion-if-else-saltos

Salto condicional generado por el IF-ELSE

En el caso del cuerpo del IF, al final del mismo existe un salto GO-TO al final del cuerpo del ELSE. Al final, ambos llegan al mismo punto de ejecución.

De esta forma, hemos creado una bifurcación de código, en la que se ejecuta unas instrucciones u otras en función del salto condicional. Finalmente, ambos se juntan y el programa continua.