JavaScript Se / Else If / Else Control


Esempio

Nella sua forma più semplice, una condizione if può essere usata in questo modo:

var i = 0;

if (i < 1) {
    console.log("i is smaller than 1");
}

La condizione i < 1 viene valutata e, se viene valutata su true viene eseguito il blocco che segue. Se viene valutato come false , il blocco viene saltato.

Una condizione if può essere espansa con un else blocco. La condizione viene verificata una volta come sopra e se viene valutata false verrà eseguito un blocco secondario (che verrebbe ignorato se la condizione fosse true ). Un esempio:

if (i < 1) {
    console.log("i is smaller than 1");
} else {
    console.log("i was not smaller than 1");
}

Supponiamo che il blocco else non contenga altro if non un blocco if (con opzionalmente un else blocco) come questo:

if (i < 1) {
    console.log("i is smaller than 1");
} else {
    if (i < 2) {
        console.log("i is smaller than 2");
    } else {
        console.log("none of the previous conditions was true");
    }
}

Poi c'è anche un modo diverso di scrivere ciò che riduce il nesting:

if (i < 1) {
    console.log("i is smaller than 1");
} else if (i < 2) {
    console.log("i is smaller than 2");
} else {
    console.log("none of the previous conditions was true");
}

Alcune importanti note a piè di pagina sugli esempi di cui sopra:

  • Se una qualsiasi condizione viene valutata come true , non verrà valutata nessun'altra condizione in quella catena di blocchi e tutti i blocchi corrispondenti (incluso il blocco else ) non verranno eseguiti.

  • Il numero di else if parti sono praticamente illimitate. L'ultimo esempio sopra ne contiene solo uno, ma puoi averne quanti ne vuoi.

  • La condizione all'interno di un'istruzione if può essere qualsiasi cosa che può essere forzata ad un valore booleano, vedere l'argomento sulla logica booleana per maggiori dettagli;

  • La scala if-else-if esce al primo successo. Cioè, nell'esempio sopra, se il valore di i è 0,5, allora viene eseguito il primo ramo. Se le condizioni si sovrappongono, viene eseguito il primo criterio che si verifica nel flusso di esecuzione. L'altra condizione, che potrebbe anche essere vera, viene ignorata.

  • Se si dispone di una sola istruzione, le parentesi attorno a tale affermazione sono tecnicamente facoltative, ad esempio questo va bene:

    if (i < 1) console.log("i is smaller than 1");
    

    E anche questo funzionerà:

    if (i < 1) 
        console.log("i is smaller than 1");
    

    Se si desidera eseguire più istruzioni all'interno di un blocco if , allora le parentesi graffe attorno ad esse sono obbligatorie. Solo l'uso dell'indentazione non è sufficiente. Ad esempio, il seguente codice:

    if (i < 1) 
        console.log("i is smaller than 1");
        console.log("this will run REGARDLESS of the condition"); // Warning, see text!
    

    è equivalente a:

    if (i < 1) {
        console.log("i is smaller than 1");
    }
    console.log("this will run REGARDLESS of the condition");