În prima parte a acestei serii, programele noastre au fost scrise doar ca o serie de afirmații. Această structură limitează sever ceea ce putem face. Spuneți că proiectați un program care trebuie să vă conectați la utilizatori. S-ar putea să doriți să direcționați un utilizator la o pagină dacă aceștia dau acreditările corecte și le trimit altora dacă nu sunt înregistrați.
Pentru a face acest lucru, trebuie să utilizați o structură de decizie ca o declarație if. Aceasta va efectua o acțiune numai în anumite condiții. Dacă condiția nu există, acțiunea nu este efectuată. În acest tutorial, veți afla totul despre condiționalități.
O singură instrucțiune if va efectua o acțiune dacă o condiție este adevărată. Dacă condiția este falsă, programul va executa următoarea instrucțiune aflată în afara blocului if. În următorul exemplu, dacă expresia ploua()
este adevărat, atunci vom face putOnCoat ()
și putOnRainboots ()
atunci du-te afara()
. Dacă ploua()
este falsă, programul va executa numai du-te afara()
.
dacă (isRaining) putOnCoat (); putOnRainboots (); du-te afara();
Aceasta este forma generală pentru scrierea unei instrucțiuni if:
dacă (condiție) declarație; afirmație; etc
condiție este o expresie care are valoarea adevărată sau falsă. O expresie care este adevărată sau falsă se numește expresie booleană. Explicațiile booleene se fac cu operatorii relaționali.
Un operator relațional compară două valori și stabilește dacă relația dintre acestea este adevărată sau falsă. Ele pot fi folosite pentru a crea expresii booleene pentru condițiile noastre. Iată o listă de operatori relaționali cu exemple:
Operator | Sens | Exemplu | Sens |
---|---|---|---|
== | egalitate | x == y | Este x egal cu y? |
=== | egalitate strictă | x === y | Este x egal cu y în valoare și tip? |
!= | inegalitate | x! = y | X nu este egal cu y? |
!== | inegalitate strictă | x! == y | X nu este egal cu y în valoare și tip? |
> | mai mare ca | x> y | Este x mai mare decât y? |
< | mai puțin decât | X < y | Este mai mică decât y? |
> = | mai mare sau egal | x> = y | Este mai mare sau egală cu y? |
<= | mai puțin sau egal | X <= y | Este mai mică sau egală cu y? |
Este important să observăm diferența dintre operatorul de egalitate ==
și operatorul strict de egalitate ===
. De exemplu, expresia 2 == "2"
este adevarat. Dar expresia 2 === "2"
este falsă. În cel de-al doilea exemplu, cele două valori sunt tipuri de date diferite și de aceea expresia este falsă. Este cea mai bună practică de a utiliza ===
sau !==
.
Următorul exemplu va afișa mesajul "Ai un A".
permiteți gradului = 93; dacă (grad> = 90) console.log ("Ai un A");
Care este valoarea expresiei 5> 3? 6! = "6"?
O instrucțiune if-else va executa un bloc de instrucțiuni dacă condiția sa este adevărată sau alt bloc dacă condiția sa este falsă. Următorul exemplu va afișa mesajul "nume de utilizator valabil" deoarece condiția este adevărată.
permiteți username = "alberta"; dacă (username === "alberta") console.log ("nume de utilizator valabil"); altceva console.log ("Nume de utilizator incorect; încercați din nou.");
Aceasta este forma generală a unei instrucțiuni if-else:
dacă (condiție) declarație; afirmație; etc altceva declarație; afirmație; etc
Care va fi rezultatul acestui program:
letLoggedIn = false; dacă (isLoggedIn) console.log ("Bun venit"); altceva console.log ("Nu sunteți autentificat");
Este, de asemenea, posibil să verificați mai mult de o condiție. Exemplu:
da num = 3; dacă (num === 1) console.log ("I"); altfel dacă (num === 2) console.log ("II"); altfel dacă (num === 3) console.log ("III"); altfel dacă (num === 4) console.log ("IV"); altfel dacă (num === 5) console.log ("V"); altceva console.log ("Intrare nevalidă");
Aceasta este forma generală pentru scrierea mai multor declarații if-else-if:
dacă (condiția1) declarație; afirmație; etc altfel dacă (condiția2) declarație; afirmație; etc altceva declarație; afirmație; etc
O instrucțiune de comutare este de asemenea folosită pentru a executa în mod condiționat o parte a programului. Următorul exemplu implementează convertorul nostru numeric roman ca o declarație de comutare:
da num = 3; comut (num) caz 1: console.log ("I"); pauză; Cazul 2: console.log ("II"); pauză; cazul 3: console.log ("III"); pauză; cazul 4: console.log ("IV"); pauză; cazul 5: console.log ("V"); pauză; implicit: console.log ("Intrare nevalidă");
Aceasta este forma generală a unei instrucțiuni de comutare:
comutator (expresie) caz 1 valoare: declarație; afirmație; etc pauză; cazul 2 valoare: declarație; afirmație; etc pauză; implicit: declarație; afirmație; etc
Fiecare caz reprezintă o valoare pe care expresia noastră o poate lua. Numai blocul de cod pentru cazul care este adevărat va executa. Includeți o declarație de pauză la sfârșitul blocului de cod, astfel încât programul să părăsească instrucțiunea de comutare și să nu execute alte cazuri. Cazul implicit se execută atunci când nici unul dintre celelalte cazuri nu este adevărat.
Scrieți o declarație de comutare care afișează ziua săptămânii dată unui număr. De exemplu, 1 = Duminică, 2 = Luni, etc.
Operatorul și operatorul &&
și operatorul sau ||
ne permite să conectăm două expresii booleene. Operatorul nu !
respinge o expresie. Pentru a ilustra modul în care funcționează operatorii logici, vom examina o tabelă de adevăr. Un tabel de adevăr cuprinde toate combinațiile de valori utilizate cu operatorii. eu folosesc P pentru a reprezenta expresia stânga și Q pentru expresia dreaptă.
&&
tabelul cu adevărat:
P | Q | P && Q |
---|---|---|
Adevărat | Adevărat | Adevărat |
Adevărat | fals | fals |
fals | Adevărat | fals |
fals | fals | fals |
Citeam tabela care mergea peste fiecare rând. Primul rând ne spune că atunci când P este adevărat și Q este adevarat, P && Q este adevarat. Exemplul de mai jos testează dacă 82 este cuprins între 60 și 100 inclusiv.
||
tabelul cu adevărat:
P | Q | P || Q |
---|---|---|
Adevărat | Adevărat | Adevărat |
Adevărat | fals | Adevărat |
fals | Adevărat | Adevărat |
fals | fals | fals |
Acest exemplu testează dacă 82 este în afara intervalului 60-100:
!
tabelul cu adevărat:
P | !P |
---|---|
Adevărat | fals |
fals | Adevărat |
Exemplu:
Completați tabelul cu valorile lipsă.
P | Q | !P | !Q | !P &&! Q | !P || ! Q |
---|---|---|---|---|---|
Adevărat | Adevărat | ||||
Adevărat | fals | ||||
fals | Adevărat | ||||
fals | fals |
Ceva util pentru a ști despre operatorii logici este că dacă expresia din partea stângă a lui &&
operatorul este fals, expresia din dreapta nu va fi verificată deoarece întreaga declarație este falsă. Și dacă expresia din partea stângă a unui ||
operatorul este adevărat, expresia din dreapta nu va fi verificată deoarece întreaga instrucțiune este adevărată.
Un program poate executa blocuri de cod condiționat folosind expresii booleene. O expresie booleană este scrisă folosind operatorii relaționali. Operatorii logici ne permit să combinăm expresii booleene.
O singură instrucțiune if dă programului o cale alternativă de urmat dacă o condiție este îndeplinită. Dacă instrucțiunile altceva furnizează un al doilea mod de acțiune dacă condiția este falsă. Și dacă-altceva dacă afirmațiile ne permit să testarea mai multor condiții. Comenzile de comutare pot fi folosite ca o alternativă la o instrucțiune if-else-if atunci când aveți mai multe condiții de testat.
În continuare, în partea a 3-a, vom discuta despre bucle.