programacion-condicional-if

El condicional IF

El condicional IF es el más sencillo de los condicionales. Es una estructura de control que evalúa una condición y ejecuta un bloque de código si dicha condición es verdadera.

En lenguaje natural, el condicional IF significa,

Si pasa esto 🡆 haz esto

Que representado en modo de diagrama quedaría algo así:

programacion-if

Esquema IF

Esto traspasado a código, tendría la siguiente pinta:

if(condicion)
{
    // Código a ejecutar si la condición es verdadera
}

La condición es una expresión que debe poder ser evaluada como verdadera o falsa. Si la condición es verdadera, el bloque de código dentro del condicional IF se ejecuta. En caso contrario, el bloque se omite y el programa continúa con la siguiente instrucción.

Las opciones de expresiones validas como condiciones son,

  • false o true
  • Una variable booleana
  • Una expresión que evalúa como booleano
  • La llamada de una función que devuelve un booleano

Aquí algunos ejemplos de condiciones válidas para usar en condicionales IF,

if(true) // con un literal. no tiene mucho sentido, pero funcionar funciona

if(a < 3)  // ejemplos como comparación
if(a == 3)
if(a != 3)

var isValid = true
if(isValid) // variable booleana

if(1)  // en algunos lenguajes, ciertos literales se evalúan automáticamente a true or false

if(calcularIsValid())   // llamada a una una función que devuelve un booleano

Por su parte el código a ejecutar si la condición es true generalmente puede ser,

  • Una única instrucción
  • Un bloque
if(condicion)
	// una única instrucción a ejecutar

if(condicion) 
{
	// un bloque con acciones a ejecutar
}

En realidad, es lo mismo. Recordar que un bloque cuenta como una única instrucción a efectos del compilador o intérprete)

Ejemplos de condicionales IF en distintos lenguajes

Prácticamente todos los lenguajes de programación cuentan con un condicional IF. Vamos a verlo con un ejemplo.

  • Vamos a evaluar una variable que contiene la altura de una persona
  • Si es mayor de 1.90, es que la persona es muy alta

Este condicional IF, escrito en lenguajes C++, C#, Java, Kotlin o JavaScript, es idéntico, y tiene la siguiente pinta,

if (altura > 1.90)
{
	// mostrar mensaje 'Vaya ¡eres muy alto!' 😮
}

Es muy similar en el caso de PHP, con la pequeñísima peculiaridad de que en PHP las variables empiezan por ’$‘.

if ($altura > 1.90)
{
	// mostrar mensaje 'Vaya ¡eres muy alto!' 😮
}

Mientras que en Python tendría la siguiente forma

if altura > 1.90:
    # mostrar mensaje '¡Enhorabuena! Has aprobado' 😮

Por poner otro ejemplo, en VB un condicional luce así,

If altura > 1.90 Then
	' mostrar mensaje '¡Enhorabuena! Has aprobado' 😮
End If

Como vemos, en general, todos los condicionales IF tienen la misma estructura y funcionalidad, con pequeñas diferencias de sintaxis entre lenguajes.

Funcionamiento interno Avanzado

Bajo el capó, un condicional IF es una bifurcación del flujo normal del programa. Para ello se emplea una instrucción de salto condicional. Esta es similar a una instrucción de salto GO-TO pero solo se ejecuta si se cumple una condición.

Dependiendo de la arquitectura, existen distintos saltos condicionales disponibles. Por ejemplo, si dos valores de la memoria son iguales, o diferentes, etc.

programacion-if-saltos

Salto condicional generado por el IF

Existen, por tanto, varias formas de ejecutar el salto condicional. Por ejemplo, la que he puesto en el esquema esquema es la más sencilla.

  • Si la condición es true, el programa sigue, ejecutando el código
  • Si la condición es false, el programa salta, y no ejecuta el cuerpo del código

Que como vemos, es exactamente el comportamiento que hemos dicho que tiene un condicional IF.