fészekrakó ha más Az utasítások segítenek megszervezni és elkülöníteni a feltételeket annak érdekében, hogy elkerüljék ugyanazon állapot kétszer történő tesztelését, vagy minimalizálják a különféle tesztek elvégzésének számát.
Használva ha utasítások összehasonlító és logikai operátorokkal egyaránt, beállíthatunk egy kódot, amely akkor fut, ha a feltételek egy adott kombinációja teljesül. Nem mindig akarjuk tesztelni a teljes feltételt annak érdekében, hogy futtasson egy állításkészletet, ha a teljes teszt igaz, egy pedig hamis. Érdemes lehet választani több különbözõ állítás között, attól függõen, hogy melyik kombinációt használjuk körülmények igaz.
Tegyük fel például, hogy van három összehasonlítandó érték, és különféle eredményeket akarunk beállítani attól függően, hogy melyik érték azonos. A következő példa bemutatja, hogyan lehet fészkelni ha nyilatkozatok ennek tesztelésére (alul vastag betűvel)
var válasz;
if (a == b) {
if (a == c) {
válasz = "minden egyenlő";
} más {
válasz = "a és b egyenlő";
}
} más {
if (a == c) {
válasz = "a és c egyenlő";
} más {
if (b == c) {
válasz = "b és c egyenlő";
} más {
válasz = "mind különböznek";
}
}
}
A logika itt működik:
- Ha az első feltétel teljesül (
if (a == b)
), majd a program ellenőrzi a beágyazott, ha feltétel (if (a == c)
). Ha az első feltétel hamis, akkor a program a más feltétel. - Ha a beágyazott, ha igaz, az állítás végrehajtásra kerül, azaz "mindenki egyenlő".
- Ha a beágyazott, ha hamis, akkor a más Az utasítás végrehajtódik, azaz "a és b egyenlő".
Íme néhány dolog, hogy észrevegyék, hogyan kódolják ezt:
- Először létrehoztuk a változót válasz az eredmény megtartása előtt ha utasítás, a változót átalakítva globális. E nélkül nem kellett volna felvennünk egy változót az összes hozzárendelési nyilatkozat elejére, mivel ez egy helyi változó lenne.
- Másodszor, mindegyiket beágyazták ha nyilatkozat. Ez lehetővé teszi számunkra, hogy könnyebben nyomon tudjuk követni, hogy hány beágyazott szint létezik. Világosabbá teszi azt is, hogy a megfelelő számú blokkot bezártuk az összes kód kitöltéséhez ha nyilatkozatok, amelyeket megnyitottunk. Előfordulhat, hogy könnyebb mindegyikhez először a zárójeleket tenni ha nyilatkozatot, mielőtt elkezdi írni a blokkban lévő kódot.
Kissé egyszerűsíthetjük ennek a kódnak egy részét, hogy elkerüljük a ha nyilatkozatok. Ahol egy egész egyéb blokk egyetlen darabból áll ha nyilatkozatból kihagyhatjuk a blokk körüli kapcsosokat és mozgathatjuk a ha kondicionálja magát ugyanazon a vonalon, mint a más, a "else if" feltételt használva. Például:
var válasz;
if (a == b) {
if (a == c) {
válasz = "minden egyenlő";
} más {
válasz = "a és b egyenlő";
}
} egyébként, ha (a == c) {
válasz = "a és c egyenlő";
} egyébként, ha (b == c) {
válasz = "b és c egyenlő";
} más {
válasz = "mind különböznek";
}
beágyazott ha akkor Az állítások nemcsak az összes programozási nyelven érvényesek JavaScript. A kezdő programozók gyakran többet használnak ha akkor vagy ha más nyilatkozatok, nem pedig egymásba rakásuk Miközben ez a fajta kód működni fog, gyorsan verbálissá válik, és megismétli a feltételeket. A feltételes utasítások beágyazása nagyobb egyértelműséget teremt a program logikája körül, és tömör kódot eredményez, amely futhat vagy fordítás gyorsabb.