If you're seeing this message, it means we're having trouble loading external resources on our website.

Dacă sunteţi în spatele unui filtru de web, vă rugăm să vă asiguraţi că domeniile *. kastatic.org şi *. kasandbox.org sunt deblocate.

Conţinutul principal

Recapitulare: Logică și decizia if

Aceasta este o recapitulare a noțiunilor prezentate în tutorialul despre operații logice și structura if.
Deseori vrem să putem face "condiţionat" lucruri în programele noastre - vrem să putem spune "dacă acest lucru este adevărat, atunci execută X, dar dacă acest alt lucru este adevărat, atunci execută Y". Este ca atunci când ne trezim dimineaţa - "dacă plouă afară, iau o umbrelă, dar dacă e soare, port ochelari de soare." Putem face lucrurile în mod condiționat în programele noastre folosind structuri if și structuri if/else împreună cu expresii condiționale.
O structură if spune programului să execute o secvență de cod, dacă este îndeplinită o condiție. În secvența de mai jos, vom afișa un mesaj numai dacă x este mai mare decat 0:
var x = 5;

if (x > 0) {
  text('x este un număr pozitiv!', 200, 200);
}
Din moment ce x este 5, mai mare decât 0, vom vedea mesajul pe pânză. Dacă am schimba valoarea lui x la -1, nu am vedea mesajul afișat, deoarece x n-ar fi mai mare decât 0.
x > 0 este ceea ce numim o expresie condițională - ceea ce înseamnă că este o expresie care este evaluată fie ca adevarată, fie ca falsă. Când o valoare este fie adevărată, fie falsă, noi o numim o valoare booleană (spre deosebire de un număr sau un șir). De exemplu, am putea afișa doar expresia condițională:
text(x > 0, 200, 200); // Afișează "adevărat"
De asemenea, am putea să o memorăm într-o variabilă și apoi să o afișăm:
var estePozitiv = x > 0;
text(estePozitiv, 200, 200);
Atunci spunem că estePozitiv memorează o valoare booleană, pentru că este fie adevărat, fie fals, depinzând de ce valoare are x.
Avem multe modalități de a crea expresii condiționale care vor fi evaluate cu adevărat sau fals, pentru că avem mulți operatori de comparare. Cei mai populari sunt:
Presupunând următoarea variabilă, cele mai frecvente operații de comparare şi expresii care ar fi adevarate cu acestea sunt:
var varstaMea = 28;
OperatorSemnificațieExpresii adevărate
===Egalitate strictăvarstaMea === 28
!==Inegalitate strictăvarstaMea !== 2928 !== 29
>Mai mare decâtvarstaMea > 2528 > 25
>=Mai mare sau egalvarstaMea >= 2828 >= 28
<Mai mic decâtvarstaMea < 3028 < 30
<=Mai mic sau egalvarstaMea <= 2828 <= 28
O greșeală foarte des întâlnită este confuzia operatorului de atribuire (=) cu operatorul de egalitate (==), deoarece ambele folosesc semnul egal, dar sunt destul de diferite. Operatorul de atribuire va modifica efectiv valoarea variabilei, în timp ce operatorul de egalitate va citi doar valoarea variabilei şi va vedea dacă este egală cu ceva. De exemplu:
var x = 2 + 2; // Setează la valoarea 4

if (x == 4) { // pune întrebarea, "oare este egal cu 4?
   text ("da, 2 + 2 = 4! , 200, 200);
}
Uneori, vrem să combinăm mai multe comparații într-o expresie condițională și pentru aceasta avem operatori logici. Acești operatori trebuie să determine rezultate precum „dacă atât X, cât și Y sunt adevărate” sau „dacă X sau Y sunt adevărate” în programele noastre.
Dacă vrem ca ambele condiţii să fie adevărate, putem folosi operatorul && ("şi"):
var gradeExterior = 30;
var numarNori = 50;
if (gradeExterior > 30 && numarNori < 5) {
  text("Folosește cremă de protecție! , 200, 200);
}
Folosim adesea în programele noastre modalități pentru verificarea poziției mouse-ului unui utilizator în interiorul unui dreptunghi (pentru a imita un buton), caz în care avem nevoie de mai mulţi operatori &&:
rect(100, 50, 100, 100); 

mousePressed = function() {
    if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
      text("Ai apăsat! , 80, 75);
    }
};
Dacă ne interesează doar ca măcar o condiție să fie adevărată, atunci putem folosi operatorul || ("sau"):
var gradeExterior = 30;
var numarNori = 50;
if (gradeExterior > 30 || numarNori < 5) {
  text("Folosește cremă de protecție dacă e cald afară sau nu sunt prea mulți nori! , 200, 200);
}
Putem folosi atât && cât şi || în aceeaşi expresie, dacă avem de verificat o condiţie foarte complexă. Folosește paranteze pentru a grupa expresii, astfel încât programul să știe precis care este ordinea evaluării:
var varstaMea = 28;
if ((varstaMea >= 0 && varstaMea < 3)  || varstaMea > 90) {
  println('Nu ești chiar la varsta perfectă.');
}
Acum, să ne întoarcem la structura if. Adesea, vrem să executăm o secvență de cod și în cazul în care condiția lui if nu este adevărată - în această situație, adăugăm o ramură else.
var varsta = 28;
if (varsta > 18) {
  println('Yay, poți conduce!');
} else {
  println('Ne pare rău, dar mai ai ' + (18 - varsta) + ' ani până când vei putea conduce.')
}
Uneori, vrem să verificăm mai multe condiții și să executăm diferite instrucțiuni, în funcție de fiecare caz, situații în care putem folosi else if:
var varsta = 20;
if (varsta >= 35) {
  println('Poți vota ȘI deține o poziție in guvern!');
} else if (varsta >= 30) {
  println('Poți vota ȘI candida la senat!');
} else if (varsta >= 18) {
  println('Poți vota!');
} else {
  println('Nu ai nicio posibilitate de a influența guvernarea!');
}
Poţi continua să adaugi oricât de multe condiții dorești - asigură-te că fiecare dintre condiţiile tale este evaluată. Testează-ți codul schimbând valorile variabilelor până când ajungi în interiorul fiecăreia dintre secvențele de cod, astfel încât să te asiguri că totul funcționează.
După cum sperăm că poți vedea acum, expresiile condiționale reprezintă o parte importantă a programării și ne permit să creăm programe mult mai puternice și mai flexibile.