1. Logika boolowska

Nie możesz napisać wyrażenia w języku Java 18 < age <65- będzie ono niepoprawne składniowo i program się nie skompiluje.

Ale możesz napisać to tak:

(18 < age) AND (age < 65)

Oczywiście zamiast słowa ANDbędzie inny operator logiczny , a teraz porozmawiamy o nich bardziej szczegółowo.

W Javie są trzy operatory logiczne: AND(i), OR(lub) i NOT(nie).

Dobra wiadomość: używając nawiasów , możesz budować wyrażenia logiczne o dowolnej złożoności.

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

Uwaga na ekran:

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

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

Wyrażenie Deszyfrowanie 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

Tam, gdzie możesz napisać wyrażenie boolowskie, możesz napisać zmienną boolowską.

Na przykład:

Kod Wyjaśnienie
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
Jeśli wiek mieści się w przedziale 18od do 65, wyświetlany jest tekst „możesz pracować”.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
Stworzyliśmy zmienną isYoungi umieściliśmy w niej pierwszą część wyrażenia. Właśnie age >= 18zastąpiono 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. W tym samym czasie został zastąpiony age <= 65przez age > 65.

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


3. Arytmetyka boolowska

Przejdźmy pokrótce przez operacje logiczne.

Operator AND, vel &&, vel spójnik .

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

Innymi słowy, wynikiem wyrażenia jest true(prawda) tylko wtedy, gdy obie wartości uczestniczące w wyrażeniu są równe true(prawda). W przeciwnym razie zawsze false(fałsz).

Operator OR, on jest ||, on jest dysjunkcją.

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

Innymi słowy, wynikiem wyrażenia jest true(prawda) zawsze, jeśli przynajmniej jedna z wartości zawartych w wyrażeniu jest true(prawdziwa). Jeśli oba są równe false, to wynikiem jest false.

Operator NOT, inaczej !, inaczej inwersja.

Wyrażenie Wynik
!true
false
!false
true

Zmiany truei falseodwrotnie.

Przydatne wyrażenia:

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