1. Logica booleană

În Java, nu puteți scrie expresia 18 < age <65. Aceasta este sintaxă incorectă și programul nu se va compila.

Dar poți scrie așa:

(18 < age) AND (age < 65)

Desigur, în loc de cuvânt AND, ar exista un operator logic . Despre ele vom vorbi mai detaliat acum.

Există trei operatori logici în Java: AND(&&), OR(||) și NOT(!).

Vestea bună este că puteți folosi paranteze pentru a construi expresii logice de orice complexitate.

Vestea proastă este că dezvoltatorii Java au decis să folosească notația din limbajul C în locul cuvintelor și and.ornot

Priveste la ecran:

Operator logic Aşteptare Realitate
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

Iată câteva exemple de utilizare a operatorilor logici în Java:

Expresie Interpretare Explicaţie
(0 < a) && (a < 100)
(0 < a) and (a < 100)
(0 < a) AND (a < 100)
(!a) && (!b)
(not a) and (not b)
(NOT a) AND (NOT b)
!(!a || !b)
not((not a) or (not b))
NOT((NOT a) OR (NOT b))


2. Exemple de utilizare a operatorilor de comparație și a variabilelor booleene

Oriunde puteți scrie o expresie logică, puteți scrie o variabilă logică.

Exemplu:

Cod Explicaţie
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
Dacă valoarea vârstei este între 18și 65, atunci este afișată expresia „Poți lucra”.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
Am creat o isYoungvariabilă și am mutat prima parte a expresiei în ea. Pur și simplu am înlocuit age >= 18cu age < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
Am creat o variabilă isOld și am mutat a doua parte a expresiei în ea. În plus, am înlocuit age <= 65cu age > 65.

Aceste trei exemple sunt echivalente. Numai în al doilea exemplu am mutat o parte a expresiei din ifinstrucțiune într-o variabilă booleană separată ( isYoung). În al treilea exemplu, am mutat a doua parte a expresiei într-o a doua variabilă ( isOld).



3. Aritmetică logică

Să trecem pe scurt prin operațiuni logice.

Operatorul ANDeste &&, cunoscut și sub numele de conjuncție .

Expresie Rezultat
true && true
true
true && false
false
false && true
false
false && false
false

Cu alte cuvinte, rezultatul unei expresii este truenumai dacă ambele valori care alcătuiesc expresia sunt true. Altfel, este întotdeauna false.

Operatorul OReste ||, cunoscut și sub numele de disjuncție .

Expresie Rezultat
true || true
true
true || false
true
false || true
true
false || false
false

Cu alte cuvinte, rezultatul unei expresii este întotdeauna truedacă cel puțin un termen din expresie este true. Dacă ambele sunt false, atunci rezultatul este false.

Operatorul NOTeste !, cunoscut și sub numele de invers logic .

Expresie Rezultat
!true
false
!false
true

Operatorul se schimbă trueîn falseși invers.

Expresii utile:

Expresie Rezultat
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b