Dichiarazioni IF / ELSE nidificate JavaScript

Nidificazione se altro le dichiarazioni aiutano a organizzare e isolare le condizioni al fine di evitare di testare la stessa condizione due volte o di ridurre al minimo il numero di volte in cui è necessario eseguire vari test. 

Usando Se istruzioni sia con operatori di confronto che logici, possiamo impostare il codice che verrà eseguito se viene soddisfatta una specifica combinazione di condizioni. Non sempre vogliamo testare l'intera condizione per eseguire una serie di istruzioni se l'intero test è vero e un altro se è falso. Potremmo voler scegliere tra diverse affermazioni diverse, a seconda di quale particolare combinazione di condizioni è vera.

Supponiamo, ad esempio, che abbiamo tre valori da confrontare e desideriamo impostare risultati diversi a seconda di quale dei valori è uguale. L'esempio seguente mostra come possiamo nidificare Se dichiarazioni da verificare per questo (in grassetto di seguito)

var risposta;

if (a == b) 

  if (a == c) 

    answer = "tutti sono uguali";
   altro
    answer = "aeb sono uguali";

 altro 

  if (a == c) 

    answer = "a e c sono uguali";

   altro 

    if (b == c) 

      answer = "bec sono uguali";
     altro
      answer = "tutti sono diversi";

  


Il modo in cui la logica funziona qui è:

  1. Se la prima condizione è vera (
    if (a == b)
    ), quindi il programma verifica la presenza di nidificato se condizione (
    if (a == c)
    ). Se la prima condizione è falsa, il programma passa a altro condizione.
  2. Se la nidificato se è vero, l'istruzione viene eseguita, ovvero "tutti sono uguali".
  3. Se la nidificato se è falso, quindi il altro l'istruzione viene eseguita, ovvero "aeb sono uguali".

Ecco alcune cose da notare come questo è codificato:

  • Innanzitutto, abbiamo creato la variabile risposta per conservare il risultato prima di iniziare il Se dichiarazione, rendendo la variabile globale. Senza quello, avremmo dovuto includere la variabile nella parte anteriore di tutte le istruzioni di assegnazione, poiché sarebbe una variabile locale.
  • In secondo luogo, abbiamo rientrato ciascun nidificato Se dichiarazione. Questo ci consente di tracciare più facilmente quanti livelli nidificati di istruzioni ci sono. Rende anche più chiaro che abbiamo chiuso il giusto numero di blocchi di codice per completare tutto Se dichiarazioni che abbiamo aperto. Potresti scoprire che è più facile mettere prima le parentesi graffe per ognuna Se prima di iniziare a scrivere il codice che appartiene a quel blocco.

Possiamo semplificare leggermente una sezione di questo codice per evitare di nidificare il file Se dichiarazioni altrettanto. Dove un intero altro blocco è composto da un singolo Se , possiamo omettere le parentesi graffe attorno a quel blocco e spostare la Se si condiziona sulla stessa linea del altro, usando la condizione "else if". Per esempio:

var risposta;

if (a == b) 

  if (a == c) 

    answer = "tutti sono uguali";

   altro 

    answer = "aeb sono uguali";

  

 altrimenti if (a == c) 

  answer = "a e c sono uguali";
altrimenti if (b == c)
  answer = "bec sono uguali";
 altro 

  answer = "tutti sono diversi";


Nidificato se poi le istruzioni sono comuni in tutti i linguaggi di programmazione, non solo JavaScript. I programmatori principianti usano spesso più se poi o se altro dichiarazioni piuttosto che nidificarle. Mentre questo tipo di codice funzionerà, diventerà rapidamente dettagliato e duplicherà le condizioni. L'annidamento delle istruzioni condizionali crea maggiore chiarezza nella logica del programma e genera codice conciso che può essere eseguito o compilato più rapidamente.