JavaScript geneste IF / ELSE-verklaringen

nesting if / else statements helpen bij het organiseren en isoleren van condities om te voorkomen dat dezelfde conditie twee keer wordt getest of om het aantal keren dat verschillende tests moeten worden uitgevoerd te minimaliseren. 

Door het gebruiken van als met zowel vergelijkende als logische operatoren, kunnen we code instellen die wordt uitgevoerd als aan een specifieke combinatie van voorwaarden wordt voldaan. We willen niet altijd de hele voorwaarde testen om een ​​set instructies uit te voeren als de hele test waar is, en een andere als deze onwaar is. We willen misschien kiezen tussen verschillende uitspraken, afhankelijk van welke specifieke combinatie van voorwaarden waar is.

Stel bijvoorbeeld dat we drie waarden moeten vergelijken en dat we verschillende resultaten willen instellen, afhankelijk van welke van de waarden gelijk zijn. Het volgende voorbeeld laat zien hoe we kunnen nestelen als te testen verklaringen (hieronder vetgedrukt)

var antwoord;

if (a == b) 

  if (a == c) 

    antwoord = "allen zijn gelijk";
   anders
    antwoord = "a en b zijn gelijk";

 anders 

  if (a == c) 

    antwoord = "a en c zijn gelijk";

   anders 

    if (b == c) 

      antwoord = "b en c zijn gelijk";
     anders
      antwoord = "ze zijn allemaal verschillend";

  


De manier waarop de logica hier werkt is:

  1. Als de eerste voorwaarde waar is (
    if (a == b)
    ), dan controleert het programma op genest als staat (
    if (a == c)
    ). Als de eerste voorwaarde onwaar is, loopt het programma naar de anders staat.
  2. Als de genest als is waar, de instructie wordt uitgevoerd, d.w.z. "alle zijn gelijk".
  3. Als de genest als is onwaar, dan is de anders instructie wordt uitgevoerd, d.w.z. "a en b zijn gelijk".

Hier zijn een paar dingen om op te merken hoe dit wordt gecodeerd:

  • Eerst hebben we de variabele gemaakt antwoord om het resultaat vast te houden voordat we begonnen met de als statement, waardoor de variabele globaal wordt. Zonder dat hadden we de variabele aan de voorkant van alle toewijzingsoverzichten moeten opnemen, omdat het een lokale variabele zou zijn.
  • Ten tweede hebben we elk genest ingesprongen als uitspraak. Hiermee kunnen we gemakkelijker bijhouden hoeveel geneste niveaus van uitspraken er zijn. Het maakt ook duidelijker dat we het juiste aantal codeblokken hebben gesloten om alle te voltooien als uitspraken die we hebben geopend. Het kan zijn dat het gemakkelijker is om de beugels daar voor elk te plaatsen als voordat u begint met het schrijven van de code die binnen dat blok hoort.

We kunnen een deel van deze code enigszins vereenvoudigen om te voorkomen dat we de moeten nesten als verklaringen evenveel. Waar een hele anders blokkeren bestaat uit een single als verklaring, we kunnen de accolades rond dat blok weglaten en de als conditioneert zichzelf op dezelfde lijn als de anders, met de voorwaarde 'anders als'. Bijvoorbeeld:

var antwoord;

if (a == b) 

  if (a == c) 

    antwoord = "allen zijn gelijk";

   anders 

    antwoord = "a en b zijn gelijk";

  

 anders if (a == c) 

  antwoord = "a en c zijn gelijk";
anders if (b == c)
  antwoord = "b en c zijn gelijk";
 anders 

  antwoord = "ze zijn allemaal verschillend";


geneste als dan verklaringen zijn gebruikelijk in alle programmeertalen, niet alleen JavaScript. Beginnende programmeurs gebruiken vaak meerdere als dan of if / else uitspraken in plaats van ze te nesten. Hoewel dit soort code werkt, wordt het snel uitgebreid en worden de voorwaarden gedupliceerd. Voorwaardelijke instructies nesten creëert meer duidelijkheid over de logica van het programma en resulteert in beknopte code die sneller kan worden uitgevoerd of gecompileerd.