Vnoření pokud / jinde příkazy pomáhají organizovat a izolovat podmínky, aby se zabránilo testování stejné podmínky dvakrát nebo aby se minimalizoval počet opakování různých testů.
Používáním -li příkazy s porovnávacími i logickými operátory, můžeme nastavit kód, který bude spuštěn, pokud bude splněna konkrétní kombinace podmínek. Nechceme vždy testovat celou podmínku, abychom mohli spustit jednu sadu příkazů, pokud je celý test pravdivý, a druhý, pokud je nepravdivý. Můžeme si vybrat mezi několika různými výroky, v závislosti na konkrétní kombinaci podmínky je pravda.
Předpokládejme například, že máme tři hodnoty k porovnání a chceme nastavit různé výsledky v závislosti na tom, které hodnoty jsou stejné. Následující příklad ukazuje, jak můžeme vnořit -li prohlášení k otestování tohoto stavu (tučně níže)
var odpověď;
pokud (a == b) {
if (a == c) {
answer = "všichni jsou si rovni";
} jinde {
odpověď = "a a b jsou si rovni";
}
} jinde {
if (a == c) {
answer = "a a c jsou si rovni";
} jinde {
if (b == c) {
answer = "b a c jsou si rovni";
} jinde {
answer = "všechny jsou odlišné";
}
}
}
Logika zde funguje:
- Pokud je první podmínka pravdivá (
pokud (a == b)
), program zkontroluje vnořené, pokud stav (pokud (a == c)
). Pokud je první podmínka chybná, program narazí na jiný stav. - Pokud vnořené, pokud je pravdivé, příkaz je proveden, tj. "všichni jsou si rovni".
- Pokud vnořené, pokud je nepravdivý, pak jiný je proveden příkaz, tj. „aab jsou stejné“.
Zde je několik věcí, které si můžete všimnout, jak je kódováno:
- Nejprve jsme vytvořili proměnnou Odpovědět držet výsledek, než jsme začali -li prohlášení, takže proměnná globální. Bez toho by jsme museli zahrnout proměnnou na začátek všech příkazů přiřazení, protože by to byla lokální proměnná.
- Za druhé, jsme odsazení každého vnořeného -li tvrzení. To nám umožňuje snadněji sledovat, kolik vnořených úrovní příkazů existuje. Také je jasnější, že jsme uzavřeli správný počet bloků kódu, abychom dokončili všechny -li prohlášení, která jsme otevřeli. Možná zjistíte, že je jednodušší umístit rovnátka jako první pro každého -li příkaz, než začnete psát kód, který patří do tohoto bloku.
Můžeme mírně zjednodušit jednu část tohoto kódu, abychom se vyhnuli hnízdění -li tolik prohlášení. Kde je celek jinak blok je tvořen jedním -li prohlášení, můžeme vynechat rovnátka kolem tohoto bloku a přesunout -li podmínka sama na stejnou linku jako jiný, pomocí podmínky „else if“. Například:
var odpověď;
pokud (a == b) {
if (a == c) {
answer = "všichni jsou si rovni";
} jinde {
odpověď = "a a b jsou si rovni";
}
} jinak pokud (a == c) {
answer = "a a c jsou si rovni";
} jinak pokud (b == c) {
answer = "b a c jsou si rovni";
} jinde {
answer = "všechny jsou odlišné";
}
Vnořené pokud / pak příkazy jsou běžné ve všech programovacích jazycích, nejen JavaScript. Novic programátoři často používají více pokud / pak nebo pokud / jinde výroky místo jejich vnoření. Zatímco tento druh kódu bude fungovat, rychle se stane podrobným a bude duplikovat podmínky. Vnořování podmíněných příkazů vytváří jasnější logiku programu a vede ke stručnému kódu, který se může spustit nebo sestavit rychlejší.