Leçons du module (4/4)
Conditionnels : if, else, ternaire
Presque jamais un programme n'exécute toutes ses instructions à la suite. Il doit constamment décider : si le prix est inférieur au seuil, appliquer la remise ; si l'utilisateur est connecté, afficher le tableau de bord ; sinon afficher la page de connexion. Les instructions qui servent à prendre des décisions sont appelées conditionnelles.
if / else
La forme de base est if (condizione) { … } else { … }:
const eta = 20;
if (eta >= 18) {
console.log('Maggiorenne');
} else {
console.log('Minorenne');
}La condition entre parenthèses est évaluée ; si elle est "vraie" (en JS, on dit truthy), le premier bloc est exécuté, sinon le second.
Chaînes else if
Lorsque les cas sont plus de deux, ils sont enchaînés avec 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');
}Seule la première branche qui correspond est exécutée.
Truthy et falsy
JS considère six valeurs comme "falsy" : false, 0, '' (chaîne vide), null, undefined, NaN. Tout le reste est truthy — même '0', 'false' et le tableau vide [].
if ('0') console.log('arriva qui'); // 'arriva qui'
if ([]) console.log('e anche qui'); // 'e anche qui'
if (0) console.log('mai'); // (mai)L'opérateur ternaire cond ? a : b
Lorsqu'un if/else ne produit qu'une seule valeur, l'opérateur ternaire permet de l'exprimer en une seule ligne et s'avère souvent plus lisible :
const eta = 20;
const stato = eta >= 18 ? 'adulto' : 'minorenne';À vous de jouer
Étant donné une note de 0 à 10, renvoyez 'promosso' si la note est >= 6, sinon 'bocciato'. La dernière expression doit s'évaluer à 'promosso' avec grade = 7.
Afficher l'indice
Utilisez le ternaire `cond ? a : b` comme dernière expression.
Solution disponible après 3 tentatives
Esercizio di ripasso
Classifiez une température : 'caldo' si >= 25, 'tiepido' si >= 15, 'freddo' sinon. Avec `t = 20`, le résultat attendu est 'tiepido'.
Afficher l'indice
Vous pouvez imbriquer des ternaires : `a >= 25 ? 'caldo' : a >= 15 ? 'tiepido' : 'freddo'`.
Solution disponible après 3 tentatives