Разполагане ако / друго операторите помагат да се организират и изолират условията, за да се избегне тестването на същото състояние два пъти или да се сведе до минимум броя пъти, когато е необходимо да се извършват различни тестове.
Като се използва ако оператори както с сравнение, така и с логически оператори, можем да зададем код, който ще се изпълнява, ако е изпълнена конкретна комбинация от условия. Не винаги искаме да тестваме цялото условие, за да стартираме един набор от оператори, ако целият тест е верен, и друг, ако е невярен. Може да искаме да избираме между няколко различни твърдения, в зависимост от това коя конкретна комбинация условия истина е.
Да предположим например, че имаме три стойности за сравнение и желаем да зададем различни резултати в зависимост от това коя от стойностите е равна. Следващият пример показва как можем да гнездим ако извлечения за тестване за това (удебелено удебелено по-долу)
вар отговор;
ако (a == b) {
ако (a == c) {
отговор = "всички са равни";
} else {
отговор = "a и b са равни";
}
} else {
ако (a == c) {
отговор = "a и c са равни";
} else {
ако (b == c) {
отговор = "b и c са равни";
} else {
answer = "всички са различни";
}
}
}
Начинът, по който логиката работи тук, е:
- Ако първото условие е вярно (
ако (a == b)
), след това програмата проверява за вложен ако състояние (ако (a == c)
). Ако първото условие е невярно, програмата се нахвърля на още състояние. - Ако вложен ако е вярно, твърдението се изпълнява, т.е. "всички са равни".
- Ако вложен ако е невярно, тогава още оператор се изпълнява, т.е. "a и b са равни".
Ето няколко неща, за да забележите как това е кодирано:
- Първо създадохме променливата отговор за да задържим резултата преди да започнем ако оператор, правейки променливата в световен мащаб. Без това би трябвало да включим променливата отпред на всички оператори за присвояване, тъй като тя ще бъде локална променлива.
- Второ, ние сме разделили всяка вложена ако изявление. Това ни позволява да проследим по-лесно колко вложени нива на изрази има. Освен това става по-ясно, че сме затворили точния брой блокове код, за да завършим всички ако изявления, които отворихме. Може да откриете, че е по-лесно да поставите скобите първо за всяка ако заявление, преди да започнете да пишете кода, който принадлежи вътре в този блок.
Можем леко да опростим един раздел от този код, за да избегнем необходимостта от гнездо ако твърденията. Къде цяло друг блок е съставен от един ако заявление, можем да пропуснем скобите около този блок и да преместим ако условие на самата линия като още, използвайки условието "else if". Например:
вар отговор;
ако (a == b) {
ако (a == c) {
отговор = "всички са равни";
} else {
отговор = "a и b са равни";
}
} иначе ако (a == c) {
отговор = "a и c са равни";
} else if (b == c) {
отговор = "b и c са равни";
} else {
answer = "всички са различни";
}
Вложени ако / тогава операторите са често срещани във всички езици за програмиране, не само JavaScript. Новаците програмисти често използват множество ако / тогава или ако / друго изявления, а не да ги влагат. Докато този вид код ще работи, той бързо ще стане многословен и ще дублира условията. Влагането на условни оператори създава повече яснота по отношение на логиката на програмата и води до кратък код, който може да се изпълнява или компилация по-бързо.