Hoy · Hoja de ruta
- 1. Aprende: Cómo se escribe una decisión:
if,else if,switchy el operador ternario. - 2. Haz: Traduce a código las reglas de negocio de tu proyecto.
- 3. Comprueba: Tus condiciones cubren todos los casos, incluidos los límites.
Antes de empezar · 5 minutos, sin apuntes
- Escribe en castellano tres reglas de tu proyecto («si el pedido supera 50 €, el envío es gratis»).
- ¿Qué pasa exactamente cuando el pedido vale 50?
- ¿Qué valores hacen que un
ifno entre aunque el dato exista?
La decisión más simple
const total = 62;
if (total >= 50) {
console.log("Envío gratuito");
} else {
console.log(`Envío: 4,95 € (te faltan ${(50 - total).toFixed(2)} €)`);
}
Con varios casos:
if (stock === 0) {
estado = "Agotado";
} else if (stock < 5) {
estado = "Últimas unidades";
} else {
estado = "Disponible";
}
El orden de las ramas es parte de la lógica
Un else if solo se evalúa si todo lo anterior fue falso. Si pones primero stock < 5, el caso stock === 0 no se alcanza nunca, porque el cero también es menor que cinco.
Ordena siempre de lo más específico a lo más general, y compruébalo con el caso límite: 0, 5, 50, el valor exacto de la frontera.
Los límites, uno por uno
Casi todos los errores de condicionales están en la frontera. Para la regla «envío gratis a partir de 50 €», prueba con 49,99, con 50 y con 50,01. Si la regla dice «a partir de», es >=. Si dice «más de», es >.
| Se dice | Se escribe |
|---|---|
| A partir de 50 | total >= 50 |
| Más de 50 | total > 50 |
| Hasta 50 | total <= 50 |
| Entre 10 y 20, incluidos | n >= 10 && n <= 20 |
Una advertencia: 10 <= n <= 20 no hace lo que parece. Se evalúa por partes y acaba comparando un booleano con un número.
El ternario, para elegir un valor
const etiqueta = stock > 0 ? "Disponible" : "Agotado";
Sirve cuando el if solo elige entre dos valores. Si dentro hay varias instrucciones, o si necesitas anidar ternarios, usa un if: se lee mucho mejor.
switch, cuando comparas una cosa contra una lista
switch (categoria) {
case "teclado":
case "raton":
garantia = 24;
break;
case "monitor":
garantia = 36;
break;
default:
garantia = 12;
}
Compara con el triple igual, así que "3" no coincide con 3. Si se omite un break, la ejecución continúa en el caso siguiente: es la fuente de errores clásica de esta estructura.
Tarea 4 · Las reglas de tu proyecto
En js/main.js:
- Escribe en comentarios cuatro reglas de negocio de tu tema, en castellano.
- Tradúcelas a condicionales.
- Añade el cálculo de un estado con tres posibles valores.
- Escribe una tabla de casos límite y comprueba cada uno.
- Convierte uno de los
ifde dos ramas en un ternario.
if con las ramas en mal orden: encuentra el caso que nunca se alcanza.Checkpoint · fin de la sesión 4
- Traduces una regla escrita en castellano a una condición correcta.
- Compruebas siempre el valor de la frontera.
- Ordenas las ramas de lo específico a lo general.
- Sabes cuándo un ternario mejora la lectura y cuándo la empeora.
Antes de cerrar · 2 minutos, sin mirar
- «Envío gratis a partir de 50 €»: ¿qué operador?
- ¿Por qué
10 <= n <= 20no funciona? - ¿Qué ocurre si olvidas un
breaken unswitch?
Ver respuestas
1 · Mayor o igual: el 50 exacto entra.
2 · Porque se evalúa por partes: la primera comparación da un booleano, y después se compara ese booleano con 20.
3 · La ejecución continúa en el caso siguiente y se aplican también sus instrucciones.