Ce face un operator logic? Operează ceva în mod logic, corect? Operatorii logici în Java returnează o valoare de tipul boolean, care va fi ori adevărată (true), ori falsă (false).
Operatorii logici în Java:
- && (operatorul ȘI/AND);
- || (operatorul SAU/OR);
- ! (operatorul NU/NOT sau „diferit”).
Acești operatori logici pot testa două condiții dintr-o instrucțiune if.
&& (operatorul ȘI/AND)
Operatorul ȘI (sau AND) are simbolurile && și returnează valoarea true numai dacă ambele condiții sunt adevărate!
Exemplu:
1| int a = 4, b = 8; 2| if ((a > 0) && (b > 0)) { 3| System.out.println("Toate numerele sunt mai mari decât zero."); 4| } else { 5| System.out.println("Se pare că nu toate numerele sunt mai mari decât zero."); 6| }
Ce afișează programul anterior? Păi avem două condiții adevărate în instrucțiunea if, deci va afișa mesajul „Toate numerele sunt mai mari decât zero.”. Dar dacă una dintre condiții era falsă? Atunci se afișa mesajul din codul de bloc al lui else.
Poți să reții faptul că dacă prima condiție este falsă, atunci programul nu se va mai „chinui” să evalueze condiția următoare…
|| (operatorul SAU/OR)
Operatorul SAU (sau OR) are simbolurile || și returnează valoarea true dacă cel puțin una dintre condiții este adevărată.
Exemplu:
1| int a = 4, b = 8; 2| if ((a > 3) || (b < 0)) { 3| System.out.println("Avem cel puțin un număr mai mare decât zero."); 4| } else { 5| System.out.println("Nu avem niciun număr mai mare decât zero."); 6| }
Programul anterior intră în blocul de cod al instrucțiunii if pentru că prima condiție este adevărată și nu mai contează faptul că a doua condiție este falsă.
Dacă la operatorul && nu se evaluează a doua condiție dacă prima este falsă, la operatorul || nu se evaluează a doua condiție dacă prima este adevărată…
! (operatorul NU/NOT sau „diferit”)
Operatorul NU (sau NOT) are simbolul „!”. Ce înseamnă asta? Păi înseamnă că acea condiție se evaluează exact pe dos. E ca și cum ai spune „diferit de fals”, adică adevărat sau „diferit de adevărat”, adică fals.
Exemple:
1| int a = 4, b = 8; 2| System.out.println("!(a < b) = " + !(a < b)); 3| System.out.println("!(a > b) = " + !(a > b)); 4| 5| if (!(a != b) { 6| System.out.prinln("A nu este diferit de B."); 7| } else { 8| System.out.println("A este diferit de B."); 9| }
Exemplul anterior afișează următoarele mesaje:
- !(a < b) = false
- !(a > b) = true
- A este diferit de B.
Deci, operatorul NU (!) inversează valoarea condiției… Dacă ai o condiție falsă, atunci îți spune că este adevărată, iar dacă este adevărată, îți spune că este falsă. Practic, operatorul NU este un mincinos…
Ce zici de operatorii logici în Java? Sunt doar trei, dar au un impact la fel de mare precum „Cei trei mușchetari”. Se folosesc foarte mult în condițiile din instrucțiunile if și mai puțin în alte declarații…
Învață să fii profesionist!
Sursă imagine: Shubham Dhage on Unsplash