Declarație condiționată dacă altfel. JavaScript: dacă și else - instrucțiuni pentru condiții Javascript dacă sunt îndeplinite două condiții, afișați un mesaj

Acasă / Nu merge

Sursa pentru acest exemplu interactiv este stocată într-un depozit GitHub. Dacă doriți să contribui la proiectul de exemple interactive, clonează https://github.com/mdn/interactive-examples și trimite-ne o cerere de extragere.

Sintaxă

if (condiție) statement1 condition O expresie care este considerată fie adevărată, fie falsă.

statement1 Declarație care este executată dacă condiția este adevărată. Poate fi orice instrucțiune, inclusiv instrucțiuni if ​​imbricate mai departe. Pentru a executa mai multe instrucțiuni, utilizați o instrucțiune bloc (( ... )) pentru a grupa acele instrucțiuni. Pentru a nu executa nicio instrucțiune, utilizați o instrucțiune goală.

statement2 Instrucțiune care este executată dacă condiția este falsă și există clauza else. Poate fi orice instrucțiune, inclusiv instrucțiuni bloc și instrucțiuni if ​​imbricate în continuare.

Descriere

Mai multe instrucțiuni if...else pot fi imbricate pentru a crea o clauză else if. Rețineți că nu există niciun cuvânt cheie elseif (într-un cuvânt) în JavaScript.

If (condiția1) declarația1 else if (condiția2) declarația2 else if (condiția3) instrucțiunea3 ... else declarațiaN

Pentru a vedea cum funcționează acest lucru, așa ar arăta dacă cuibul ar fi indentat corect:

Dacă (condiția 1) declarația1 altfel dacă (condiția 2) declarația2 altfel dacă (condiția 3) ...

Pentru a executa mai multe instrucțiuni în cadrul unei clauze, utilizați o instrucțiune bloc (( ... )) pentru a grupa acele instrucțiuni. În general, este o practică bună să folosiți întotdeauna instrucțiuni bloc, în special în codul care implică instrucțiuni if ​​imbricate:

Dacă (condiție) ( afirmații1 ) else ( afirmații2 )

Nu confundați valorile booleene primitive adevărate și false cu adevărul sau falsitatea obiectului boolean. Orice valoare care nu este falsă , nedefinită , nulă , 0 , -0 , NaN sau șirul gol ("") și orice obiect, inclusiv un obiect boolean a cărui valoare este falsă, este considerat adevărat atunci când este folosit ca condiție. De exemplu:

Var b = boolean nou(fals); dacă (b) // această condiție este adevărată

Exemple

Folosind dacă...altfel

if (cipher_char === from_char) ( rezultat = rezultat + to_char; x++; ) else (rezultat = rezultat + clear_char; )

Dacă (x > 50) ( /* face ceea ce trebuie */ ) else if (x > 5) ( /* face ceea ce trebuie */ ) else ( /* face ceea ce trebuie */ )

Atribuire în cadrul expresiei condiționale

Este recomandabil să nu folosiți atribuiri simple într-o expresie condiționată, deoarece atribuirea poate fi confundată cu egalitatea atunci când aruncați o privire peste cod. De exemplu, nu utilizați următorul cod:

Dacă (x = y) ( /* face ceea ce trebuie */ )

Dacă trebuie să utilizați o temă într-o expresie condiționată, o practică obișnuită este să puneți paranteze suplimentare în jurul sarcinii. De exemplu:

Dacă ((x = y)) ( /* face ceea ce trebuie */ )

Specificații

Caietul de sarcini Stare Comentariu
Ultima versiune ECMAScript (ECMA-262)
Proiect
ECMAScript 2015 (ediția a 6-a, ECMA-262)
Definiția „declarației dacă” din specificația respectivă.
Standard
ECMAScript 5.1 (ECMA-262)
Definiția „declarației dacă” din specificația respectivă.
Standard
ECMAScript ediția a treia (ECMA-262)
Definiția „declarației dacă” din specificația respectivă.
Standard
ECMAScript prima ediție (ECMA-262)
Definiția „declarației dacă” din specificația respectivă.
Standard Definiție inițială

Compatibilitate browser

Tabelul de compatibilitate de pe această pagină este generat din date structurate. Dacă doriți să contribuiți la date, vă rugăm să consultați https://github.com/mdn/browser-compat-data și să ne trimiteți o cerere de extragere.

Actualizați datele de compatibilitate pe GitHub

DesktopMobilServer
ChromeMargineFirefoxInternet ExplorerOperăSafariVizualizare web AndroidChrome pentru AndroidFirefox pentru AndroidOpera pentru AndroidSafari pe iOSSamsung InternetNode.js
daca...altfelSuport complet Chrome 1Edge Suport complet 12Suport complet pentru Firefox 1IE suport complet 3Opera Suport complet DaSafari Suport complet DaWebView Android Suport complet 1Chrome Android Suport complet 18Firefox Android Suport complet 4Opera Android Suport complet DaSafari iOS Suport complet DaSamsung Internet Android Suport complet 1.0nodejs Suport complet Da

În acest exemplu, declarăm mai întâi patru variabile folosind cuvântul cheie var și le atribuim imediat valori numerice. Apoi, folosind operatorii de creștere și decrementare, schimbăm valorile numerelor. Informațiile sunt afișate folosind funcția Ecou(vezi articolul „”). Pentru a nu mai scrie numele obiectului, am folosit construcția cu().

Operatori logici

La verificarea condițiilor se folosesc operatori logici, pentru a nu mă repeta, voi face o abreviere: operandul din stânga este L.O., iar operandul din dreapta P.O.

  • && - „ȘI” logic
  • || - „SAU”
  • ! - "NU"
  • > - L.O. mai multe P.O.
  • >= - L.O. mai mare sau egal cu P.O.
  • < - Л.О. меньше П.О.
  • <= - Л.О. меньше или равен П.О.
  • == - L.O. egal cu P.O.
  • != - L.O. nu este egal cu P.O.
  • |= - L.O. egal cu sine SAU P.O.
  • &= - L.O. egal cu sine I P.O.
  • ^= - EXCLUSIV SAU

Acum luați în considerare următorul script:

//***************************************** // operații logice// logik_if_else.js //***************************************** var a= 10 , b= 100 , WshShell, titlu, msg1, msg2, msg3, msg4, vbInformation = 64 ; // Creați o instanță a clasei WScript.Shell WshShell = WScript.CreateObject("WScript.Shell"); titlu =„Lucrul cu instrucțiunea condiționată IF ELSE JS”<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>; cu(WshShell) ( dacă (a>= 5 && a= 5 ||

b== 100 ) //true msg2 = "ADEVARAT" ; else msg2 = "FALSE" ; Popup (msg2, 5, titlu, vbInformation); //instrucțiunea condiționată js dacă altfel if (! a) //false msg3 = "ADEVARAT" ; else msg3 = "FALSE" ; Popup (msg3, 5, titlu, vbInformation); if (a&= 100 ) //false msg4 = "ADEVARAT" ; else msg4 = "FALSE" ; Popup (msg4, 5, titlu, vbInformation);)

Ca și în scriptul anterior, aici am folosit construcția

cu a reduce // *********************************************************** codul programului . Cu toate acestea, pentru a afișa informații am folosit funcția Pop-up (vezi articolul „”). Ca urmare, casete de dialog se va închide automat după câteva secunde. Vă rugăm să rețineți că în acest exemplu nu am folosit bretele în instrucțiunea condițională js if, acestea sunt relevante doar atunci când trebuie să executați nu o singură linie de cod, ci mai multe.În cele din urmă, să ne uităm la un exemplu practic, cum ar fi rezolvarea unei ecuații pătratice: // Rezolvarea unei ecuații pătratice// uravnenije_if_else.js var a, b, c, d, x, x1, x2;//Declară variabile

a=-2; b= 6; c= 20;//Căutarea unui discriminant

d= Math .pow (b, 2 ) - 4 * a* c;

dacă (d== 0 ) ( x= b/ (2 * a) ; msg=

„Ecuația are o singură soluție, x este exact”

Instrucțiunea if evaluează mai întâi expresia condiționată specificată în paranteze, al cărei rezultat este o valoare booleană. Dacă rezultatul obținut este adevărat, atunci instrucțiunea este executată. Dacă expresia returnează false, atunci instrucțiunea nu este executată. O expresie de orice complexitate poate fi folosită ca o condiție.

Dacă corpul instrucțiunii if folosește o singură instrucțiune, atunci includerea acesteia între acolade este posibilă, dar nu este necesară. Cu toate acestea, dacă trebuie să executați mai multe instrucțiuni în corpul unei instrucțiuni if, atunci aceste câteva instrucțiuni trebuie să fie incluse între acolade. Vă rugăm să rețineți că nu ar trebui să existe un punct și virgulă după acolada de închidere.

Următorul cod demonstrează utilizarea instrucțiunii if:

Instrucțiunile If pot fi imbricate în alte instrucțiuni if:

Vă rugăm să rețineți ultimul exemplu: instrucțiunea nu trebuie să fie scrisă exact sub instrucțiunea if dacă instrucțiunea nu este de dimensiuni mari, atunci poate fi scrisă într-o singură linie;

if else declarație

Și așa am aflat că instrucțiunea if vă permite să executați instrucțiuni dacă condiția este adevărată. Dacă condiția este falsă, atunci nu se efectuează nicio acțiune. Cu toate acestea, este adesea necesar să executați anumite instrucțiuni dacă o anumită condiție este adevărată și alte instrucțiuni dacă condiția este falsă. În astfel de cazuri, dacă altfel se utilizează ramificare. Constă dintr-o instrucțiune if urmată de un bloc de instrucțiuni și un cuvânt cheie else urmat de un alt bloc de instrucțiuni.

Sintaxa instrucțiunii if else este:

Declarația else este opțională. Blocul de instrucțiuni situat după else este executat implicit, adică. când expresia condiționată în if returnează false . Declarația else nu poate fi utilizată separat de instrucțiunea if. Blocul else ar trebui să apară numai după instrucțiunea if poate fi considerată acțiunea implicită.

Modificând ușor exemplul nostru anterior, putem vedea cum funcționează declarația if else dacă condiția returnează false:

Declarația if else poate fi imbricată. Astfel de declarații condiționale imbricate apar destul de des în practică. O instrucțiune if este imbricată dacă este imbricată în alt bloc if sau else. Dacă codul tău folosește mai multe instrucțiuni if ​​la rând, else se referă întotdeauna la cea mai apropiată if:

Ultimul else nu se aplică la if($a), deoarece nu este în unitate interioară, deci cel mai apropiat de acesta este if($i) . Declarația else din bloc este legată de if($b), deoarece acest if este cel mai apropiat de acesta.

elseif/else if construct

Declarația if/else evaluează valoarea unei expresii condiționate și execută o anumită bucată de cod de program. Dar ce se întâmplă dacă trebuie să executați unul dintre multele fragmente? Dacă trebuie să verificați mai multe condiții la rând, atunci construcția elseif sau altfel dacă este potrivită pentru aceasta (aceasta este aceeași construcție, doar scrisă diferit). Formal, nu este o construcție PHP independentă - este doar un stil de programare comun care constă în utilizarea declarațiilor repetate if/else. Permite testarea unor condiții suplimentare până când este găsit adevărat sau până când se ajunge la blocul else. elseif/else if construct trebuie să apară după declarația if și înainte de instrucțiunea else, dacă există.

Aici sunt verificate trei condiții și, în funcție de valoarea variabilei $username, sunt efectuate diferite acțiuni.

Nu este nimic special în această piesă. Este pur și simplu o secvență de instrucțiuni if, în care fiecare instrucțiune if face parte din clauza else a instrucțiunii if anterioare. Pentru cei care au întâlnit pentru prima dată această formă de notație și nu prea înțeleg cum funcționează, vom rescrie același exemplu, doar într-o formă sintactică echivalentă care arată pe deplin imbricarea structurilor:

Declarații condiționale

Instrucțiunile condiționate vă permit să săriți sau să executați alte instrucțiuni în funcție de valoarea unei expresii specificate. Aceste afirmații sunt puncte de decizie într-un program și sunt uneori numite și operatorii de sucursale.

Dacă vă imaginați că un program este un drum, iar interpretul JavaScript este un călător care merge de-a lungul acestuia, atunci declarațiile condiționate pot fi considerate ca o răscruce în care codul programului se ramifică în două sau mai multe drumuri, iar la astfel de răscruce, interpretul trebuie să aleagă care drum de urmat.

declarație dacă/altfel

Instrucțiunea if este o instrucțiune de control de bază care permite interpretului JavaScript să ia decizii sau să execute mai precis instrucțiuni, în funcție de condiții. Declarația if are două forme. Primul:

if (expresie) enunţ

În această formă, expresia este mai întâi evaluată. Dacă rezultatul obținut este adevărat, atunci instrucțiunea este executată. Dacă expresia returnează false, atunci instrucțiunea nu este executată. De exemplu:

If (nume utilizator == null) // Dacă variabila nume de utilizator este nulă sau nume utilizator nedefinit = "Alex"; // definesc-o

Rețineți că parantezele din jurul unei expresii condiționate sunt o parte obligatorie a sintaxei instrucțiunii if.

A doua formă a instrucțiunii if introduce o clauză else care este executată atunci când expresia este evaluată ca false. Sintaxa sa este:

if (expresie) statement1 else statement2

Acest formular execută declarația1 dacă expresia este evaluată ca adevărată și instrucțiunea2 dacă expresia este evaluată ca falsă. De exemplu:

If (n == 1) console.log("1 mesaj nou primit."); else console.log("Am primit " + n + " mesaje noi.");

else if declarație

Instrucțiunea if/else evaluează valoarea unei expresii și execută una sau alta bucată de cod de program, în funcție de rezultat. Dar ce se întâmplă dacă trebuie să executați unul dintre multele fragmente? Mod posibil pentru a face acest lucru este să folosiți declarația else if. Formal nu este operator independent JavaScript; Acesta este doar un stil obișnuit de programare de utilizare a unei declarații repetate if/else:

If (n == 1) ( // Executați blocul 1 ) else if (n == 2) ( // Executați blocul 2 ) else if (n == 3) ( // Executați blocul 3 ) else ( // Dacă nici unul una dintre instrucțiunile else anterioare nu a fost executată, executați blocul 4)

Nu este nimic special la această piesă. Este pur și simplu o secvență de instrucțiuni if, în care fiecare instrucțiune if face parte din clauza else a instrucțiunii anterioare.

declarație switch

O instrucțiune if creează o ramură în fluxul programului, iar ramificarea cu mai multe stări poate fi implementată folosind mai multe instrucțiuni else if. Cu toate acestea, acest lucru nu este întotdeauna cea mai buna solutie, mai ales dacă toate ramurile depind de valoarea aceleiași expresii. În acest caz, este o risipă să reevaluezi aceeași expresie în mai multe instrucțiuni if.

Declarația switch este concepută special pentru astfel de situații. Cuvântul cheie switch este urmat de o expresie între paranteze și de un bloc de cod între acolade:

comutare (expresie) (instrucțiuni)

Cu toate acestea, sintaxa completă a unei instrucțiuni switch este mai complexă decât se arată aici. Diverse locuri din bloc sunt marcate cu un cuvânt cheie caz, urmată de o expresie și un caracter de două puncte.

Când este executată o instrucțiune switch, evaluează valoarea expresiei și apoi caută o etichetă de caz care se potrivește cu acea valoare (potrivirea este determinată folosind operatorul de identitate ===). Dacă eticheta este găsită, blocul de cod este executat, începând cu prima instrucțiune care urmează etichetei case. Dacă nu este găsită o etichetă de caz cu o valoare potrivită, execuția începe cu prima instrucțiune care urmează etichetei speciale implicit:. Dacă eticheta implicită: lipsește, întregul bloc de instrucțiuni switch este omis.

Funcționarea declarației switch este dificil de explicat în cuvinte, explicația este mult mai clară cu un exemplu. Următoarea instrucțiune switch este echivalentă cu instrucțiunile repetate if/else prezentate în exemplul anterior:

Switch(n) ( cazul 1: // Executat dacă n === 1 // Execută blocul 1 întrerupere; // Opreste aici cazul 2: // Execut dacă n === 2 // Execută blocul 2 întrerupere; // Stop aici cazul 3: // Executare if n === 3 // Execut blocul 3 break // Opriți aici implicit: // Dacă totul eșuează... // Executați blocul 4;

Acordați atenție cuvântului cheie pauză la sfârşitul fiecărui bloc de caz. Instrucțiunea break face ca controlul să fie transferat la sfârșitul instrucțiunii switch și execuția următoarelor instrucțiuni să continue. Declarațiile Case dintr-o instrucțiune switch specifică doar punctul de pornire al codului programului care urmează să fie executat, dar nu specifică niciun punct final.

Dacă nu există instrucțiuni break, instrucțiunea switch va începe executarea blocului de cod cu eticheta case corespunzătoare valorii expresiei și va continua executarea instrucțiunilor până când ajunge la sfârșitul blocului. În cazuri rare, acest lucru este util pentru scrierea codului care trece de la o etichetă de caz la alta, dar în 99% din cazuri ar trebui să încheiați cu atenție fiecare bloc de caz cu o instrucțiune break. (Când utilizați un comutator în interiorul unei funcții, puteți utiliza o instrucțiune return în loc de o pauză. Ambele instrucțiuni servesc pentru a termina instrucțiunea switch și pentru a împiedica trecerea la următoarea etichetă de caz.)

Mai jos este un exemplu mai practic de utilizare a instrucțiunii switch, care convertește o valoare într-un șir într-un mod care depinde de tipul valorii:

Funcția convert(x) ( switch(typeof x) ( // Convertește un număr într-un număr întreg hexazecimal „număr”: return x.toString(16); // Returnează un șir între ghilimele case „șir”: return „"" + x + """; // Orice alt tip este convertit în modul obișnuit implicit: return x.toString(); ) ) console.log(convert(1067)); // Rezultatul "42b"

Rețineți că în cele două exemple anterioare, cuvintele cheie case au fost urmate de numere sau literale șir. Acesta este modul în care instrucțiunea switch este folosită cel mai des în practică, dar standardul ECMAScript vă permite să specificați expresii arbitrare după caz.

Instrucțiunea switch evaluează mai întâi expresia după cuvântul cheie switch și apoi expresiile case în ordinea în care sunt specificate, până când se găsește o valoare potrivită. Faptul unei potriviri este determinat folosind operatorul de identitate === mai degrabă decât operatorul de egalitate ==, astfel încât expresiile trebuie să se potrivească fără nicio conversie de tip.

Deoarece nu toate expresiile case sunt evaluate de fiecare dată când este executată o instrucțiune switch, ar trebui să evitați să utilizați expresii case care au efecte secundare, cum ar fi apelurile de funcții și atribuirile. Cel mai sigur este să limitați expresiile de caz la expresii constante.

După cum sa explicat mai devreme, dacă nicio expresie case nu se potrivește cu o instrucțiune switch, instrucțiunea switch începe să execute instrucțiunea etichetată implicit:. Dacă eticheta implicită: lipsește, corpul instrucțiunii switch este omis complet. Rețineți că în exemplele anterioare, eticheta implicită: apare la sfârșitul corpului instrucțiunii switch, după toate etichetele case. Acesta este un loc logic și obișnuit pentru acesta, dar de fapt poate fi localizat oriunde într-o instrucțiune switch.

Instrucțiuni de control- Acestea sunt instrucțiuni care vă permit să controlați execuția codului programului. De obicei, codul de execuție dintr-o instrucțiune de control este numit corpul acelei instrucțiuni.

Instrucțiunile de control pot fi imbricate și pot fi utilizate și în interiorul altor instrucțiuni de control.

Instrucțiuni condiționate

În mod implicit, interpretul JavaScript execută instrucțiuni una după alta, în ordinea în care apar cod sursă. În cazurile în care executarea sau neexecutarea unor instrucțiuni trebuie să depindă de îndeplinirea sau neîndeplinirea unei anumite condiții, se folosesc instrucțiuni condiționate.

declarația dacă

Declarația if are două forme. Sintaxa primei forme:

Expresia din paranteze se numește conditie pentru indeplinire dacă afirmații sau condiție pe scurt. În primul rând, se calculează valoarea expresiei. Valoarea rezultată este convertită implicit într-un tip boolean dacă este necesar. Dacă rezultatul evaluării unei expresii este adevărat, atunci instrucțiunea este executată. Dacă expresia returnează false , atunci instrucțiunea nu este executată:

Dacă (adevărat) alertă ("Finalizat!"); if (false) alert("Nu se va executa!");

Sintaxa if vă permite să executați o singură instrucțiune, dar dacă trebuie să executați mai multe instrucțiuni, trebuie să utilizați o instrucțiune compusă:

Dacă (adevărat) ( ​​var str = "Bună ziua!"; alertă (str); )

Sintaxa formei a doua:

If (expresie) afirmație; declarație else;

Cuvântul cheie else vă permite să adăugați o instrucțiune care este executată dacă condiția este falsă:

If (fals) alert("Nu se va executa"); else alert("Alerează");

După cum sa menționat deja, instrucțiunile de control pot fi imbricate, ceea ce vă permite să creați următoarele constructe:

Var num = 2; if (num == 1) ( alert("num value: " + num); ) else if (num == 2) ( alert ("num value: " + num); ) else ( alert("nu am cunoașteți acest număr!");)

Nu este nimic special la acest cod. Este pur și simplu o secvență de declarații, în care fiecare instrucțiune if este o parte else a declarației if anterioară. Această formă de notație poate să nu pară complet clară la prima vedere, așa că să luăm în considerare o formă echivalentă sintactic care arată imbricarea declarațiilor if:

Var num = 2; if (num == 1) ( alert("num value: " + num); ) else ( if (num == 2) ( alert ("num value: " + num); ) else ( alert("nu nu nu știu aceste numere!"); ))

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații