Direct naar de hoofdinhoud
Module 1 · Les 4 van 44/32 in de cursus~10 min
Modulelessen (4/4)

Voorwaardelijke waarden: if, else, ternair

Een programma voert vrijwel nooit alle instructies in een rechte lijn uit. Het moet voortdurend beslissen: als de prijs onder de drempel ligt, pas dan de korting; als de gebruiker is ingelogd, toon dan het paneel; anders tonen inloggen. De instructies die worden gebruikt om beslissingen te nemen, worden conditionals genoemd.

if / else

De basisvorm is if (condition) { … } else { … }:

JS
const eta = 20;

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

De voorwaarde tussen haakjes wordt geëvalueerd; als het "waar" is (in JS terminologie) wordt het eerste blok uitgevoerd, anders het tweede.

else if ketens

Als er meer dan twee cases zijn, worden deze gekoppeld met 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');
}

Alleen de eerste tak die overeenkomt, wordt uitgevoerd.

Waarheid en onwaarheid

JS beschouwt zes waarden als "falsy": false, 0, '' (lege tekenreeks), null, undefined, NaN. Al het andere is waar — zelfs '0', 'false' en de lege array [].

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

De ternaire operator cond ? a : b

Wanneer een if/else alleen een waarde produceert, drukt de ternaire deze uit in een enkele regel en is vaak beter leesbaar:

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

Probeer het

Oefening#js.m1.l4.e1
Pogingen: 0Laden…

Geef bij een cijfer tussen 0 en 10 'promosso' terug als het cijfer >= 6 is, anders 'bocciato'. De laatste uitdrukking moet resulteren in 'promosso' met cijfer = 7.

Editor laden…
Toon hint

Gebruik de ternaire `cond ? a: b` als de laatste expressie.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#js.m1.l4.e2
Pogingen: 0Laden…

Classificeer een temperatuur: 'caldo' als >= 25, 'tiepido' als >= 15, anders 'freddo'. Met `t = 20` is het verwachte resultaat 'tiepido'.

Editor laden…
Toon hint

Je kunt ternairen nesten: `a >= 25 ? 'caldo' : a >= 15 ? 'tiepido': 'freddo'`.

Oplossing beschikbaar na 3 pogingen