JavaScript-kapslade IF / ELSE-uttalanden

Nesting om annat uttalanden hjälper till att organisera och isolera förhållanden för att undvika att testa samma tillstånd två gånger eller för att minimera antalet gånger olika test behöver utföras. 

Genom att använda om uttalanden med både jämförelse och logiska operatörer, kan vi ställa in kod som körs om en specifik kombination av villkor är uppfylld. Vi vill inte alltid testa hela villkoret för att köra en uppsättning uttalanden om hela testet är sant och ett annat om det är falskt. Vi kanske vill välja mellan flera olika uttalanden, beroende på vilken särskild kombination av villkor som är sanna.

Anta till exempel att vi har tre värden att jämföra och vill ställa in olika resultat beroende på vilka av värdena som är lika. Följande exempel visar hur vi kan bo om uttalanden att testa för detta (i fetstil nedan)

var svar;

if (a == b) 

  if (a == c) 

    answer = "alla är lika";
   annat
    answer = "a och b är lika";

 annat 

  if (a == c) 

    answer = "a och c är lika";

   annat 

    if (b == c) 

      answer = "b och c är lika";
     annat
      answer = "alla är olika";

  


Så här logiken fungerar här är:

  1. Om det första villkoret är sant (
    if (a == b)
    ), sedan kontrollerar programmet om kapslade om tillstånd (
    if (a == c)
    ). Om det första villkoret är felaktigt stöter programmet till annan tillstånd.
  2. Om kapslade om är sant, uttalandet körs, dvs. "alla är lika".
  3. Om kapslade om är falskt, då annan uttalande utförs, dvs. "a och b är lika".

Här är några saker att märka hur detta kodas:

  • Först skapade vi variabeln svar att hålla resultatet innan vi började om uttalande, vilket gör variabeln global. Utan detta skulle vi behöva inkludera variabeln på framsidan av alla uppdragsuppdrag, eftersom det skulle vara en lokal variabel.
  • För det andra har vi inrymt varje kapslade om påstående. Detta gör att vi lättare kan spåra hur många kapslade nivåer av uttalanden som finns. Det gör det också tydligare att vi har stängt rätt antal blockblock för att slutföra alla om uttalanden som vi öppnade. Du kanske tycker att det är lättare att placera hängslen först där för varje om uttalande innan du börjar skriva koden som hör till det blocket.

Vi kan förenkla ett avsnitt av den här koden något för att undvika att hoppa om uttalanden ganska lika mycket. Där en hel annars blockera består av en singel om uttalande, kan vi utelämna hängslen runt det blocket och flytta om konditionera sig upp på samma linje som annan, använder villkoret "annat om". Till exempel:

var svar;

if (a == b) 

  if (a == c) 

    answer = "alla är lika";

   annat 

    answer = "a och b är lika";

  

 annars om (a == c) 

  answer = "a och c är lika";
annat om (b == c)
  answer = "b och c är lika";
 annat 

  answer = "alla är olika";


kapslad om då uttalanden är vanliga på alla programmeringsspråk, inte bara JavaScript. Nybörjeprogrammerare använder ofta flera om då eller om annat uttalanden snarare än att häcka dem. Medan den här typen av kod kommer att fungera, kommer den snabbt att vara ordbok och kommer att duplicera villkoren. Häckning av villkorade uttalanden skapar mer tydlighet kring programmets logik och resulterar i kortfattad kod som kan köras eller sammanställas snabbare.