traženje gnijezda ako / ostalo izjave pomažu u organiziranju i izoliranju uvjeta kako bi se izbjeglo testiranje istog stanja dva puta ili da bi se smanjio broj puta koliko je potrebno obavljati različite testove.
Pomoću ako naredbe i s operatorima usporedbe i s logičkim operaterima, možemo postaviti kôd koji će se izvoditi ako je zadovoljena specifična kombinacija uvjeta. Ne želimo uvijek testirati cijeli uvjet da bismo pokrenuli jedan niz izjava ako je cijeli test istinit, a drugi ako je netočan. Možda ćemo htjeti birati između nekoliko različitih izjava, ovisno o tome koja je kombinacija Uvjeti je istina.
Pretpostavimo, na primjer, da imamo tri vrijednosti za usporedbu i želimo postaviti različite rezultate ovisno o tome koje su vrijednosti jednake. Sljedeći primjer pokazuje kako možemo gnijezditi ako izjave za testiranje (podebljano dolje)
var odgovor;
ako je (a == b) {
ako je (a == c) {
odgovor = "svi su jednaki";
} else {
odgovor = "a i b su jednaki";
}
} else {
ako je (a == c) {
odgovor = "a i c su jednaki";
} else {
ako je (b == c) {
odgovor = "b i c su jednaki";
} else {
odgovor = "svi su različiti";
}
}
}
Način na koji ovdje djeluje logika je:
- Ako je prvi uvjet istinit (
ako je (a == b)
), zatim program provjerava na ugniježđeno ako uvjet (ako je (a == c)
). Ako je prvi uvjet lažan, program se pretvara u drugo stanje. - Ako ugniježđeno ako je istina, izjava se izvršava, tj. "svi su jednaki".
- Ako ugniježđeno ako je lažno, tada je drugo izjava se izvršava, tj. "a i b su jednake".
Evo nekoliko stvari koje ćete primijetiti kako se to kodira:
- Prvo smo stvorili varijablu odgovor zadržati rezultat prije nego što smo započeli ako iskaz, čineći varijablu globalno. Bez toga, trebali bismo uključiti varijablu na prednju stranu svih izjava o zadatku, jer bi to bila lokalna varijabla.
- Drugo, svaki smo ugnijezdili ako izjava. To nam omogućuje jednostavnije praćenje koliko ugniježđenih razina postoje. Također postaje jasnije da smo zatvorili pravi broj blokova koda da bismo dovršili sve ako izjave koje smo otvorili. Možda otkrijete da je lakše za svaki put staviti narukvice ako izjavu prije nego što počnete pisati kôd koji pripada unutar tog bloka.
Možemo malo pojednostaviti jedan odjeljak ovog koda kako bismo izbjegli da se gnijezdi ako izjavama podosta. Gdje cjelina blok sastoji se od jednoga ako Izjava, možemo izostaviti zagrade oko tog bloka i premjestiti ako uvjet da se uputi na istu liniju kao i drugo, koristeći uvjet "drugo ako". Na primjer:
var odgovor;
ako je (a == b) {
ako je (a == c) {
odgovor = "svi su jednaki";
} else {
odgovor = "a i b su jednaki";
}
} drugo ako (a == c) {
odgovor = "a i c su jednaki";
} else ako (b == c) {
odgovor = "b i c su jednaki";
} else {
odgovor = "svi su različiti";
}
ugniježđena ako tada izjave su uobičajene u svim programskim jezicima, ne samo JavaScript. Početni programeri često koriste višestruko ako tada ili ako / ostalo izjave umjesto da ih gnijezde. Iako će ova vrsta koda raditi, brzo će postati višeznačna i duplicirat će uvjete. Gniježđenje uvjetnih izjava stvara više jasnoće oko logike programa i rezultira sažetim kodom koji se može pokrenuti ili sastaviti brže.