Lecciones del módulo (4/4)
Condicionales: if, else, ternario
Casi nunca un programa ejecuta todas sus instrucciones una tras otra. Constantemente debe decidir: si el precio está por debajo del umbral, aplica el descuento; si el usuario ha iniciado sesión, muestra el panel; de lo contrario, muestra el inicio de sesión. Las instrucciones que sirven para tomar decisiones se denominan condicionales.
if / else
La forma básica es if (condizione) { … } else { … }:
const eta = 20;
if (eta >= 18) {
console.log('Maggiorenne');
} else {
console.log('Minorenne');
}La condición entre paréntesis es evaluada; si es "verdadera" (en JS se dice truthy) se ejecuta el primer bloque, de lo contrario, el segundo.
Cadenas else if
Cuando los casos son más de dos, se concatenan con else if:
const punti = 87;
if (punti >= 90) {
console.log('Eccellente');
} else if (punti >= 70) {
console.log('Buono');
} else if (punti >= 50) {
console.log('Sufficiente');
} else {
console.log('Da migliorare');
}Solo el primer ramo que coincida será ejecutado.
Truthy y falsy
JS considera "falsy" a seis valores: false, 0, '' (cadena de texto vacía), null, undefined, NaN. Todo lo demás es truthy — incluso '0', 'false' y el array vacío [].
if ('0') console.log('arriva qui'); // 'arriva qui'
if ([]) console.log('e anche qui'); // 'e anche qui'
if (0) console.log('mai'); // (mai)El operador ternario cond ? a : b
Cuando un if/else produce únicamente un valor, el ternario lo expresa en una sola línea y a menudo es más legible:
const eta = 20;
const stato = eta >= 18 ? 'adulto' : 'minorenne';Pruébalo tú mismo
Dado un voto de 0 a 10, devuelve 'promosso' si el voto es >= 6, de lo contrario 'bocciato'. La última expresión debe evaluar a 'promosso' con grade = 7.
Mostrar pista
Usa el ternario `cond ? a : b` como última expresión.
Solución disponible después de 3 intentos
Ejercicio de repaso
Clasifica una temperatura: 'caldo' si >= 25, 'tiepido' si >= 15, 'freddo' de lo contrario. Con `t = 20` el resultado esperado es 'tiepido'.
Mostrar pista
Puedes anidar los ternarios: `a >= 25 ? 'caldo' : a >= 15 ? 'tiepido' : 'freddo'`.
Solución disponible después de 3 intentos