Operatory logiczne

Operatory logiczne w Javie pozwalają na łączenie wyrażeń logicznych i są fundamentem dla konstrukcji warunkowych oraz pętli. Umożliwiają one wykonanie operacji na wartościach boolean (true lub false). Oto przegląd głównych operatorów logicznych dostępnych w Javie wraz z przykładami ich użycia.

1. Operator AND (&&)

Zwraca true tylko wtedy, gdy oba porównywane wyrażenia są prawdziwe.

boolean a = true;
boolean b = false;
System.out.println(a && b); // Wynik: false, ponieważ b jest false

int x = 5, y = 10, z = 15;
System.out.println(x > 0 && y < 20); // Wynik: true, oba warunki są spełnione

2. Operator OR (||)

Zwraca true, gdy przynajmniej jedno z porównywanych wyrażeń jest prawdziwe.

boolean a = true;
boolean b = false;
System.out.println(a || b); // Wynik: true, ponieważ a jest true

int x = 5, y = 10, z = 15;
System.out.println(x > 10 || y < 20); // Wynik: true, ponieważ drugi warunek jest spełniony

3. Operator NOT (!)

Zwraca wartość przeciwną do wartości wyrażenia.

boolean a = true;
System.out.println(!a); // Wynik: false

int x = 5;
System.out.println(!(x > 10)); // Wynik: true, ponieważ x > 10 jest false

Zastosowanie operatorów logicznych:

Operatory logiczne są szczególnie użyteczne w instrukcjach warunkowych if, else if, while, gdzie możemy łączyć różne warunki.

int wiek = 20;
boolean maPrawoJazdy = true;

if (wiek >= 18 && maPrawoJazdy) {
    System.out.println("Możesz prowadzić samochód.");
} else {
    System.out.println("Nie możesz prowadzić samochodu.");
}

W tym przykładzie, osoba może prowadzić samochód tylko wtedy, gdy spełnia dwa warunki: ma co najmniej 18 lat (wiek >= 18) oraz posiada prawo jazdy (maPrawoJazdy). Użycie operatora && pozwala na sprawdzenie obu tych warunków jednocześnie.

Krótkie circuitowanie (ang. short-circuit evaluation):

  • Dla &&: Jeśli pierwsze wyrażenie jest false, Java nie ocenia drugiego wyrażenia, ponieważ całe wyrażenie i tak będzie false.
  • Dla ||: Jeśli pierwsze wyrażenie jest true, Java nie ocenia drugiego wyrażenia, ponieważ całe wyrażenie i tak będzie true.