# Nesting

If-statements laten je toe code uit te voeren als er aan een conditie voldaan wordt. In sommige gevallen zal het nodig zijn een if-statement te gebruiken als onderdeel van de code die moet worden uitgevoerd binnen een andere if-statement. Met andere woorden, de uitvoer van het tweede if-statement is afhankelijk van de evaluatie van het eerste. Men noemt dit nesten van if-statements.

De syntax is niets speciaal. Het is letterlijk een if-statement binnen de uitvoer van een ander if-statement:

if (conditie) {
    if (conditie) {

    }
}

Ook else en else if kunnen worden toegevoegd in een geneste if:

if (conditie) {
    if (conditie1) {

    } else if (conditie2) {

    } else {

    }
} else {
    if (conditie) {

    }
}

TIP

Maak correct gebruik van inspringen om de accolades mooi uit te lijnen en te organiseren. Op die manier blijft de code van een geneste if leesbaar!

Neem het voorbeeld van de openingsuren van een ijssalon. De openingsuren verschillen naargelang de dag, maar ook naargelang het seizoen. Er moet dus eerst een controle gebeuren op het seizoen en vervolgens op de dag. De twee hangen aan elkaar vast door hun specifieke combinatie.

In code kunnen we dat als volgt voorstellen:

const dag = "maandag";
const seizoen = "zomer";

if (seizoen === "lente") {
    if (dag !== "maandag") {
        document.write("Open van 14.00u tot 20.00u");
    } else {
        document.write("Gesloten");
    }
} else if (seizoen === "zomer") {
    if (dag !== "maandag") {
        document.write("Open van 11.30u tot 22.00u");
    } else {
        document.write("Open van 17.00u tot 20.00u");
    }
}