Condicionales if, else if y else

Lectura
25 min~6 min lectura
CONCEPTO CLAVE: Los condicionales if, else if y else son estructuras fundamentales en JavaScript que permiten ejecutar diferentes bloques de código según se cumplan o no determinadas condiciones. Son la base de la toma de decisiones en programación.

¿Qué son los condicionales?

Imagina que estás programando un sistema de recomendaciones para una tienda en línea. Cuando un cliente compra más de 100 dólares, quieres ofrecerle un descuento del 10%. Si compra más de 200 dólares, el descuento sube al 20%. Y si no llega a 100 dólares, simplemente le muestras el precio normal. ¿Cómo haces esto en código? Con los condicionales.

Los condicionales son estructuras de control que evalúan una expresión y, dependiendo de si es verdadera (true) o falsa (false), ejecutan un bloque de código u otro. En JavaScript, la estructura básica se compone de tres palabras clave: if, else if y else.

La estructura básica: if

El condicional if es la estructura más simple. Evalúa una condición entre paréntesis y, si es verdadera, ejecuta el bloque de código entre las llaves.

let edad = 18;

if (edad >= 18) {
  console.log("Eres mayor de edad");
}

// Salida: "Eres mayor de edad"

En este ejemplo, la condición edad >= 18 se evalúa como verdadera porque edad es 18, por lo tanto, el mensaje se imprime en la consola.

💡 Tip: Después de la palabra clave if, siempre debes escribir la condición entre paréntesis. El bloque de código a ejecutar va entre llaves { }. Si solo tienes una línea de código, las llaves son opcionales, pero es una buena práctica incluirlas siempre para mayor claridad.

Manejando el caso contrario: else

¿Y qué pasa cuando la condición es falsa? Aquí entra en juego else. El bloque else se ejecuta únicamente cuando la condición del if es falsa.

let temperatura = 15;

if (temperatura > 30) {
  console.log("Hace mucho calor");
} else {
  console.log("El clima es agradable o frío");
}

// Salida: "El clima es agradable o frío"

En este caso, como 15 no es mayor que 30, la condición es falsa, por lo que se ejecuta el bloque del else.

Evaluando múltiples condiciones: else if

A veces necesitas evaluar más de dos situaciones. Para eso existe else if, que te permite encadenar múltiples condiciones una tras otra.

let calificacion = 85;

if (calificacion >= 90) {
  console.log("Excelente");
} else if (calificacion >= 80) {
  console.log("Muy bien");
} else if (calificacion >= 70) {
  console.log("Bien");
} else if (calificacion >= 60) {
  console.log("Suficiente");
} else {
  console.log("Necesitas mejorar");
}

// Salida: "Muy bien"
📌 Recuerda: JavaScript evalúa las condiciones en orden, de arriba hacia abajo. Una vez que encuentra una condición verdadera, ejecuta ese bloque y omite todas las demás evaluaciones posteriores. Por eso es importante el orden de tus condiciones.

Ejemplo práctico: Sistema de envío

Vamos a crear un ejemplo completo que simule un sistema de cálculo de costos de envío:

  1. Declaramos una variable para el total de la compra
  2. Evaluamos diferentes rangos de compra
  3. Aplicamos la lógica de envío correspondiente
let totalCompra = 150;
let costoEnvio;

if (totalCompra >= 200) {
  costoEnvio = 0;
  console.log("¡Envío gratis!");
} else if (totalCompra >= 100) {
  costoEnvio = 5.99;
  console.log("Envío reducido: $5.99");
} else {
  costoEnvio = 12.99;
  console.log("Envío estándar: $12.99");
}

console.log("Costo final: $" + (totalCompra + costoEnvio));
// Salida: "Envío reducido: $5.99"
// Salida: "Costo final: $155.99"
⚠️ Precaución: Un error común es usar else if como dos palabras separadas (elseif o else if con espacio extra). En JavaScript, debe ser exactamente else if (con espacio) o podrías obtener errores de sintaxis inesperados.

Operadores de comparación

Para escribir condiciones efectivas, necesitas conocer los operadores de comparación disponibles en JavaScript:

OperadorSignificadoEjemplo
===Estrictamente igual (valor y tipo)5 === "5" es false
!==Estrictamente diferente5 !== "5" es true
>Mayor que10 > 5 es true
<Menor que3 < 7 es true
>=Mayor o igual que10 >= 10 es true
<=Menor o igual que5 <= 5 es true
💡 Tip: Siempre prefiere usar === (comparación estricta) en lugar de == (comparación débil). La comparación estricta verifica tanto el valor como el tipo de dato, evitando comportamientos inesperados.

Condiciones compuestas con operadores lógicos

Puedes combinar múltiples condiciones usando operadores lógicos: && (AND), || (OR) y ! (NOT).

let edad = 25;
let tieneCredencial = true;

if (edad >= 18 && tieneCredencial) {
  console.log("Puedes entrar al evento");
} else {
  console.log("No cumples los requisitos");
}

// Salida: "Puedes entrar al evento"
Ver más sobre operadores lógicos

AND (&&): Todas las condiciones deben ser verdaderas para que el resultado sea verdadero.

OR (||): Al menos una condición debe ser verdadera para que el resultado sea verdadero.

NOT (!): Invierte el valor de la condición: true se convierte en false, y viceversa.

Anidamiento de condicionales

Puedes colocar condicionales dentro de otros condicionales. Esto se conoce como anidamiento y es útil para situaciones más complejas.

let usuario = {
  nombre: "María",
  esMiembro: true,
  puntos: 450
};

if (usuario.esMiembro) {
  console.log("Bienvenida, " + usuario.nombre);
  
  if (usuario.puntos >= 500) {
    console.log("Tienes acceso VIP");
  } else {
    console.log("Tienes acceso estándar");
  }
} else {
  console.log("Regístrate para obtener beneficios");
}

// Salida: "Bienvenida, María"
// Salida: "Tienes acceso estándar"
⚠️ Precaución: El anidamiento excesivo puede hacer tu código difícil de leer y mantener. Si necesitas más de 2-3 niveles de anidamiento, considera refactorizar tu código usando funciones o reorganizando la lógica.
El buen código no es solo el que funciona, sino el que otros pueden entender y mantener fácilmente.

El operador ternario: alternativa rápida

Para condiciones simples de una sola línea, JavaScript ofrece el operador ternario, una forma más compacta de escribir un if-else.

// Forma tradicional con if-else
let estado;
if (edad >= 18) {
  estado = "adulto";
} else {
  estado = "menor";
}

// Forma con operador ternario
let estado = (edad >= 18) ? "adulto" : "menor";

// La sintaxis es: condición ? valorSiVerdadero : valorSiFalso

Comparación de estructuras

EstructuraUsoMejor para
ifUna sola condiciónVerificaciones simples
if...elseDos caminos posiblesSí o no, verdadero o falso
if...else if...elseMúltiples condicionesEvaluación de rangos o múltiples casos
Operador ternarioCondición simple en una líneaAsignaciones rápidas
📌 Resumen: Los condicionales son herramientas esenciales que te permiten crear programas inteligentes capaces de tomar decisiones. Domina el uso de if para condiciones simples, else if para múltiples evaluaciones y else para el caso por defecto cuando ninguna condición se cumple.

Errores comunes que debes evitar

  1. Olvidar las llaves: Especialmente cuando agregas más líneas de código después, las llaves son cruciales.
  2. Confundir = con ===: Un solo = asigna valor, === compara. Este error puede causar bugs difíciles de detectar.
  3. Condiciones con efectos secundarios: Evita modificar variables dentro de las condiciones, esto hace el código confuso.
  4. Orden incorrecto: Recuerda que else if se evalúa en orden. Coloca las condiciones más específicas primero.
🧠 Quiz

¿Qué se imprimirá en la consola con el siguiente código? let nivel = 75; if (nivel >= 90) { console.log("Experto"); } else if (nivel >= 70) { console.log("Avanzado"); } else { console.log("Principiante"); }

  • A) Experto
  • B) Avanzado
  • C) Principiante
✅ Respuesta: B) Avanzado. Como 75 es menor que 90 pero mayor o igual que 70, la segunda condición (else if) es verdadera, por lo que se imprime "Avanzado".
💡 Consejo final: Practica escribiendo condicionales con diferentes escenarios de la vida real: validación de formularios, sistemas de descuentos, calculadoras de IMC, o cualquier aplicación donde necesites tomar decisiones basadas en datos. La práctica constante es la clave para dominar esta estructura fundamental.