Nesting dacă / altceva declarațiile ajută la organizarea și izolarea condițiilor pentru a evita testarea aceleiași condiții de două ori sau pentru a minimiza numărul de ori trebuie efectuate diverse teste.
Prin utilizarea dacă instrucțiuni cu operatori de comparație și logici, putem configura cod care va fi rulat dacă o anumită combinație de condiții este îndeplinită. Nu întotdeauna dorim să testăm întreaga condiție pentru a rula un set de declarații dacă întregul test este adevărat și o altă dacă este falsă. Este posibil să dorim să alegem între mai multe enunțuri diferite, în funcție de ce combinație particulară condiţii este adevarat.
Să presupunem, de exemplu, că avem trei valori de comparat și dorim să stabilim rezultate diferite în funcție de care dintre valori sunt egale. Următorul exemplu arată cum putem cuibări dacă declarații pentru a testa acest lucru (în negru mai jos)
raspuns var;
if (a == b) {
if (a == c) {
raspunde = "toate sunt egale";
} altfel {
raspuns = "a si b sunt egali";
}
} altfel {
if (a == c) {
raspunde = "a si c sunt egali";
} altfel {
if (b == c) {
raspunde = "b si c sunt egali";
} altfel {
raspunde = "toate sunt diferite";
}
}
}
Modul în care funcționează logica aici este:
- Dacă prima condiție este adevărată (
dacă (a == b)
), apoi programul verifică cuibărit dacă condiție (if (a == c)
). Dacă prima condiție este falsă, programul se confruntă cu altfel condiție. - Dacă cuibărit dacă este adevărat, afirmația este executată, adică „toți sunt egali”.
- Dacă cuibărit dacă este fals, atunci altfel instrucțiunea este executată, adică "a și b sunt egale".
Iată câteva lucruri pentru a observa cum este codat acest lucru:
- În primul rând, am creat variabila Răspuns pentru a reține rezultatul înainte de a începe dacă enunț, făcând variabila global. Fără asta, ar fi fost necesar să includem variabila pe partea din față a tuturor declarațiilor de atribuire, deoarece ar fi o variabilă locală.
- În al doilea rând, am indentizat fiecare cuibărit dacă afirmație. Acest lucru ne permite să urmărim mai ușor câte niveluri de enunțuri există. De asemenea, este mai clar că am închis numărul potrivit de blocuri de cod pentru a completa toate dacă declarații pe care le-am deschis. S-ar putea să descoperiți că este mai ușor să puneți acoladele acolo pentru fiecare dacă înainte de a începe să scrieți codul care aparține în acel bloc.
Putem simplifica ușor o secțiune a acestui cod pentru a evita să fii cuibărit dacă declarații la fel de mult. Unde un întreg altfel se blochează este alcătuit dintr-un singur dacă afirmație, putem omite bretele în jurul acelui bloc și puteți muta dacă condiționează-te pe aceeași linie ca și altfel, folosind condiția „altceva dacă”. De exemplu:
raspuns var;
if (a == b) {
if (a == c) {
raspunde = "toate sunt egale";
} altfel {
raspuns = "a si b sunt egali";
}
} altfel daca (a == c) {
raspunde = "a si c sunt egali";
} altceva dacă (b == c) {
raspunde = "b si c sunt egali";
} altfel {
raspunde = "toate sunt diferite";
}
Cuibărit daca atunci instrucțiunile sunt comune în toate limbajele de programare, nu doar JavaScript. Programatorii novici folosesc adesea mai multe daca atunci sau dacă / altceva declarații în loc să le cuibărească. În timp ce acest tip de cod va funcționa, acesta va deveni rapid verbos și va dubla condițiile. Instrucțiunile condiționate creează mai multă claritate în jurul logicii programului și rezultă un cod concis care poate fi rulat sau compila mai repede.