Los condicionales son instrucciones que permiten a tu programa ejecutar diferente código según si una condición es verdadera o falsa.
Sin condicionales, tu programa haría lo mismo siempre, sin importar los datos. Con ellos, puedes validar edades, calcular descuentos y clasificar productos.
Estructura básica de if, else if y else
Un condicional if evalúa una condición entre paréntesis. Si el resultado es true, ejecuta el bloque de código entre llaves.
if (condición) {
// código si la condición es verdadera
} else if (otraCondición) {
// código si la segunda condición es verdadera
} else {
// código si ninguna condición fue verdadera
}
if — evalúa la primera condición.
else if — evalúa una condición adicional si la anterior fue falsa.
else — se ejecuta cuando ninguna condición anterior fue verdadera.
Puedes tener cero o varios bloques else if. El bloque else es siempre opcional.
Ejemplo 1: Validar la edad para una cuenta en Liverpool
Supón que Liverpool solo permite abrir una cuenta de crédito a mayores de 18 años.
let edad = 20;
if (edad >= 18) {
console.log("Puedes abrir tu cuenta de crédito Liverpool.");
} else {
console.log("Lo sentimos, necesitas tener 18 años o más.");
}
Resultado:
Puedes abrir tu cuenta de crédito Liverpool.
Si cambias edad a 15, el programa imprime el mensaje del bloque else. La variable controla cuál camino toma el código.
Ejemplo 2: Clasificar un producto en Mercado Libre por precio
Mercado Libre aplica diferentes comisiones según el precio de venta de un artículo. Este ejemplo clasifica el rango de precio.
let precio = 850;
if (precio < 500) {
console.log("Producto de precio bajo.");
} else if (precio >= 500 && precio < 2000) {
console.log("Producto de precio medio.");
} else if (precio >= 2000 && precio < 10000) {
console.log("Producto de precio alto.");
} else {
console.log("Producto premium.");
}
Resultado:
Producto de precio medio.
Aquí usamos && para verificar que el precio cumpla dos condiciones al mismo tiempo. Esto viene directo de lo que aprendiste sobre operadores lógicos en la lección anterior.
Ejemplo 3: Calcular descuento en Bimbo según el total de compra
Bimbo ofrece descuentos escalonados a sus distribuidores según el monto pedido.
let totalCompra = 12500;
let descuento = 0;
if (totalCompra >= 20000) {
descuento = 0.15;
} else if (totalCompra >= 10000) {
descuento = 0.10;
} else if (totalCompra >= 5000) {
descuento = 0.05;
} else {
descuento = 0;
}
let montoDescuento = totalCompra * descuento;
let totalFinal = totalCompra - montoDescuento;
console.log("Descuento aplicado: $" + montoDescuento);
console.log("Total a pagar: $" + totalFinal);
Resultado:
Descuento aplicado: $1,250
Total a pagar: $11,250
El programa evalúa cada condición de arriba hacia abajo. Se detiene en la primera que sea verdadera. Por eso el orden de los else if importa.
La instrucción switch
switch es una alternativa a if / else if cuando necesitas comparar una variable contra múltiples valores exactos.
Es más legible que una cadena larga de else if cuando los casos son valores fijos.
switch (variable) {
case valor1:
// código
break;
case valor2:
// código
break;
default:
// código si ningún case coincide
}
case — define un valor específico a comparar.
break — detiene la ejecución del switch. Sin él, el código sigue al siguiente case.
default — equivalente al else; se ejecuta si ningún case coincide.
Ejemplo 4: Categorías de productos FEMSA
FEMSA maneja diferentes líneas de negocio. Este programa imprime una descripción según la categoría ingresada.
let categoria = "bebidas";
switch (categoria) {
case "bebidas":
console.log("Línea de refrescos y agua embotellada.");
break;
case "conveniencia":
console.log("Tiendas OXXO y servicios al consumidor.");
break;
case "salud":
console.log("Farmacias y productos de bienestar.");
break;
default:
console.log("Categoría no reconocida.");
}
Resultado:
Línea de refrescos y agua embotellada.
Si categoria fuera "logistica", el programa ejecutaría el bloque default.
Tabla comparativa: if / else if vs switch
| Característica | if / else if |
switch |
|---|---|---|
| Compara rangos | ✅ Sí | ❌ No |
| Compara valores exactos | ✅ Sí | ✅ Sí |
| Usa operadores lógicos | ✅ Sí | ❌ No |
| Más legible con muchos valores | ❌ Se vuelve largo | ✅ Sí |
Requiere break |
❌ No | ✅ Sí |
Usa switch cuando compares una variable contra 4 o más valores exactos. Usa if / else if cuando necesites rangos o condiciones compuestas.
Errores comunes
Error 1: Usar = en lugar de === dentro del if
// ❌ Incorrecto — esto asigna, no compara
if (edad = 18) {
console.log("Mayor de edad");
}
// ✅ Correcto
if (edad === 18) {
console.log("Mayor de edad");
}
Usar = dentro de un if asigna un valor y siempre resulta true. Es un error muy difícil de detectar visualmente.
Error 2: Olvidar el break en switch
let dia = "lunes";
switch (dia) {
case "lunes":
console.log("Inicio de semana.");
// ❌ Falta break — el código cae al siguiente case
case "martes":
console.log("Segundo día.");
break;
}
Resultado incorrecto:
Inicio de semana.
Segundo día.
Sin break, JavaScript continúa ejecutando todos los case siguientes aunque no coincidan. Siempre agrega break al final de cada case.
Error 3: Orden incorrecto en condiciones escalonadas
let salario = 18500;
// ❌ Incorrecto — la primera condición atrapa todo
if (salario > 5000) {
console.log("Salario medio");
} else if (salario > 15000) {
console.log("Salario alto"); // Nunca se ejecuta
}
// ✅ Correcto — de mayor a menor
if (salario > 15000) {
console.log("Salario alto");
} else if (salario > 5000) {
console.log("Salario medio");
}
Resultado correcto:
Salario alto
JavaScript evalúa los if de arriba hacia abajo y se detiene en el primero verdadero. Ordena tus condiciones de la más específica a la más general.
Error 4: No cubrir el caso else o default
Si no incluyes un else o default, el programa puede no hacer nada cuando ninguna condición se cumpla. Eso puede parecer un error extraño sin mensaje de advertencia. Siempre define qué debe pasar en el caso no contemplado.
Condicionales anidados
Puedes colocar un if dentro de otro if. A esto se le llama condicional anidado.
let esMiembro = true;
let totalCompra = 9000;
if (esMiembro) {
if (totalCompra >= 8000) {
console.log("Descuento de 12% por ser miembro con compra alta.");
} else {
console.log("Descuento de 5% por ser miembro.");
}
} else {
console.log("Sin descuento. Regístrate para obtener beneficios.");
}
Resultado:
Descuento de 12% por ser miembro con compra alta.
Evita anidar más de dos niveles. El código se vuelve difícil de leer y de mantener.
Puntos clave
- Usa
if / else if / elsepara evaluar rangos y condiciones compuestas con operadores lógicos. - Usa
switchcuando compares una sola variable contra múltiples valores exactos y fijos. - El orden de los
else ifimporta: escribe primero las condiciones más específicas o restrictivas. - Siempre incluye un bloque
elseodefaultpara manejar casos no previstos. - En
switch, nunca olvides elbreak; sin él, el código ejecuta todos loscasesiguientes.