Passer au contenu principal
eLearner.app
Module 1 · Leçon 4 sur 44/32 dans le cours~10 min
Leçons du module (4/4)

Condizionali: if, else, ternario

Quasi mai un programma esegue tutte le sue istruzioni in fila. Continuamente deve decidere: se il prezzo è sotto soglia, applica lo sconto; se l'utente è loggato, mostra il pannello; altrimenti mostra il login. Le istruzioni che servono a prendere decisioni si chiamano condizionali.

if / else

La forma base è if (condizione) { … } else { … }:

JS
const eta = 20;

if (eta >= 18) {
  console.log('Maggiorenne');
} else {
  console.log('Minorenne');
}

La condizione fra parentesi viene valutata; se è "veritiera" (in JS si dice truthy) viene eseguito il primo blocco, altrimenti il secondo.

Catene else if

Quando i casi sono più di due, si concatenano con else if:

JS
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 il primo ramo che combacia viene eseguito.

Truthy e falsy

JS considera "falsy" sei valori: false, 0, '' (stringa vuota), null, undefined, NaN. Tutto il resto è truthy — anche '0', 'false' e l'array vuoto [].

JS
if ('0') console.log('arriva qui'); // 'arriva qui'
if ([]) console.log('e anche qui'); // 'e anche qui'
if (0) console.log('mai'); // (mai)

L'operatore ternario cond ? a : b

Quando un if/else produce solo un valore, il ternario lo esprime in un'unica riga ed è spesso più leggibile:

JS
const eta = 20;
const stato = eta >= 18 ? 'adulto' : 'minorenne';

Prova tu

Exercice#js.m1.l4.e1
Tentatives : 0Chargement…

Dato un voto da 0 a 10, restituisci 'promosso' se il voto è >= 6, altrimenti 'bocciato'. L'ultima espressione deve valutare a 'promosso' con grade = 7.

Chargement de l'éditeur…
Afficher l'indice

Usa il ternario `cond ? a : b` come ultima espressione.

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#js.m1.l4.e2
Tentatives : 0Chargement…

Classifica una temperatura: 'caldo' se >= 25, 'tiepido' se >= 15, 'freddo' altrimenti. Con `t = 20` il risultato atteso è 'tiepido'.

Chargement de l'éditeur…
Afficher l'indice

Puoi annidare i ternari: `a >= 25 ? 'caldo' : a >= 15 ? 'tiepido' : 'freddo'`.

Solution disponible après 3 tentatives