1. Logika boolowska

W Javie nie możesz napisać wyrażenia 18 < age <65. To jest niepoprawna składnia, a program nie będzie się kompilował.

Ale możesz napisać to tak:

(18 < age) AND (age < 65)

Oczywiście zamiast słowa ANDbyłby operator logiczny . Porozmawiamy o nich teraz bardziej szczegółowo.

W Javie są trzy operatory logiczne: AND(&&), OR(||) i NOT(!).

Dobrą wiadomością jest to, że możesz używać nawiasów do konstruowania wyrażeń logicznych o dowolnej złożoności.

Zła wiadomość jest taka, że ​​programiści Javy zdecydowali się na użycie notacji z języka C zamiast słów and, ori not.

Spójrz na ekran:

Operator logiczny Oczekiwanie Rzeczywistość
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

Oto kilka przykładów użycia operatorów logicznych w Javie:

Wyrażenie Interpretacja Wyjaśnienie
(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. Przykłady użycia operatorów porównania i zmiennych boolowskich

Gdziekolwiek możesz napisać wyrażenie logiczne, możesz napisać zmienną logiczną.

Przykład:

Kod Wyjaśnienie
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
Jeśli wartość wieku mieści się w przedziale od 18i 65, wówczas wyświetlana jest fraza „Możesz pracować”.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
Stworzyliśmy isYoungzmienną i przenieśliśmy do niej pierwszą część wyrażenia. Po prostu zastąpiliśmy age >= 18.age < 18
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
Stworzyliśmy zmienną isOld i przenieśliśmy do niej drugą część wyrażenia. Dodatkowo wymieniliśmy age <= 65na age > 65.

Te trzy przykłady są równoważne. Dopiero w drugim przykładzie przenieśliśmy część wyrażenia z ifinstrukcji do osobnej zmiennej boolowskiej ( isYoung). W trzecim przykładzie przenieśliśmy drugą część wyrażenia do drugiej zmiennej ( isOld).



3. Arytmetyka logiczna

Przejdźmy pokrótce przez operacje logiczne.

Operatorem ANDjest &&, znany również jako koniunkcja .

Wyrażenie Wynik
true && true
true
true && false
false
false && true
false
false && false
false

Innymi słowy, wynikiem wyrażenia jest truetylko wtedy, gdy obie wartości tworzące wyrażenie to true. Inaczej jest zawsze false.

Operatorem ORjest ||, znany również jako dysjunkcja .

Wyrażenie Wynik
true || true
true
true || false
true
false || true
true
false || false
false

Innymi słowy, wynikiem wyrażenia jest zawsze, truejeśli co najmniej jeden termin w wyrażeniu to true. Jeśli oba są false, to wynikiem jest false.

Operator NOTjest !znany również jako odwrotność logiczna .

Wyrażenie Wynik
!true
false
!false
true

Operator zmienia się truena falsei odwrotnie.

Przydatne wyrażenia:

Wyrażenie Wynik
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b