programacion-condicional-if-elseif

El condicional IF-ELSEIF

El condicional IF-ELSEIF es una evolución de los condicionales IF y IF-ELSE, que nos permite evaluar múltiples condiciones y ejecuta diferentes bloques de código en función del resultado de cada condición.

En lenguaje natural el bucle IF-ELSEIF significa:

Si pasa esto 🡆 haz esto
Si no, pero ocurre esto otro 🡆 haz esto
(…opcionalmente varios ‘si no, pero’)
Y si nada de lo anterior 🡆 haz esto

El condicional IF-ELSEIF es una forma de evitar el anidamiento, mediante una forma de sintaxis más cómoda y fácil de leer.

Su sintaxis general es la siguiente,

if (condicion1)
{
    // accionas e ejecutar si condicion1 es true
}
else if (condicion2)
{
    // accionas e ejecutar si condicion1 es false, y condicion2 es true
}
...
[else if] ← todos los `else if` más que quieras
...
else
{
	// acciones e ejecutar si todas las condiciones anteriores son falsa
}

Ejemplos de condicionales IF-ELSEIF en distintos lenguajes

Veamos un ejemplo de condicional IF-ELSEIF. Supongamos que tenemos una medición de la temperatura ambiente, y queremos mostrar un resultado en función de su valor.

  • Si es mayor que 30º, es que hace calor 🔥
  • Si es entre 15º y 30º, hace buen tiempo 🌤️
  • Si es menor de 15º, hace frío ❄️

Analicemos lo que queremos hacer:

  • Un primer IF comprueba si la temperatura es mayor de 30º 🔥
  • Un segundo ELSEIF comprueba que la temperatura es mayor de 15º. Como ya hemos descartado que sea mayor que 30º, este punto se ejecutará la temperatura está entre 15-30º 🌤️
  • El último ELSE se ejecutará únicamente si la temperatura es menor de 15 ❄️

Muchos lenguajes proporcionan una estructura IF-ELSEIF. Veamos algunos ejemplos:

Este bucle, en el caso de C++, C#, Java, JavaScript y Kotlin, por ejemplo, tendría la siguiente forma.

if (temperatura > 30.0)
{
	// mostrar mensaje '¡Hace calor!' 🔥
}
else if(temperatura > 15)
{
	// mostrar mensaje 'Hace buen tiempo' 🌤️
}
else
{
	// mostrar mensaje '¡Hace frío!' ❄️
}

Por ejemplo, en Python este mismo condicional tendría la siguiente forma

if temperatura > 30.0:
    # mostrar mensaje '¡Hace calor!' 🔥
elif temperatura > 15:
    # mostrar mensaje 'Hace buen tiempo' 🌤️
else:
    # mostrar mensaje '¡Hace frío!' ❄️

Mientras que, por ejemplo, en VB quedaría

If temperatura > 30.0 Then
    ' mostrar mensaje '¡Hace calor!' 🔥
ElseIf temperatura > 15 Then
    ' mostrar mensaje 'Hace buen tiempo' 🌤️
Else
    ' mostrar mensaje '¡Hace frío!' ❄️
End If

El condicional IF-ELSEIF es una estructura de control muy potente, y muy legible, que nos permite tomar decisiones múltiples en función de diferentes condiciones.

Lo único que puede causar un poco de “lio” al principio es entender que si ejecutas un ELSEIF, las condiciones anteriores ya han sido descartadas. En el ejemplo lo hemos visto en el bloque del en medio. El cuál sólo se ejecutaba si la temperatura es entre 15-30º.

Pero, en general, una vez que le pilléis el truco es una estructura bastante legible. Es una buena alternativa para evitar anidamiento de condicionales, que es algo que conviene reducir porque son más difíciles de leer.