Operatory logiczne
Istnieje kilka binarnych operatorów logicznych i jeden jednoargumentowy. Argumentami wszystkich tych operatorów są literały logiczne (stałe), zmienne logiczne i wyrażenia posiadające wartość logiczną.
Operatorzy:
!
- „negacja”, operator jednoargumentowy, zmienia znaczenie na przeciwne (odwraca: zamienia kłamstwo w prawdę, a prawdę w kłamstwo).
&&
- logiczne „i” („koniunkcja”, „przecięcie”), operacja binarna, zwraca prawdę wtedy i tylko wtedy, gdy oba operandy są prawdziwe.
||
- logiczne „lub” („dysjunkcja”, „suma”), operacja binarna, zwraca wartość prawdziwą, gdy przynajmniej jeden z operandów jest prawdziwy.
Operatory logiczne mają następujący priorytet: negacja, koniunkcja, alternatywna. Podobnie jak w przypadku operatorów arytmetycznych, nawiasy służą do korygowania pierwszeństwa. Jeśli jedna para nawiasów jest zagnieżdżona w innej parze nawiasów, najpierw obliczana jest wartość w nawiasach wewnętrznych. Przykłady:
boolean a = true;
boolean b;
b = a || true;
b = !b;
System.out.println(b);
a = a || b;
boolean c;
c = a && (a||b);
System.out.println(c);
W Javie typów boolowskich i numerycznych nie można na siebie konwertować.
Operatory porównania
Większość operatorów porównania ma zastosowanie do wartości liczbowych. Są to wszystkie operatory binarne, które mają dwa argumenty numeryczne, ale zwracają wartość logiczną.
>
— operator „więcej niż”.
>=
— operator „większy lub równy”.
<
— operator „mniej niż”.
<=
— operator „mniejszy lub równy”.
!=
— operator „nierówny”.
==
— operator równoważności (równości).
Dwa ostatnie operatory można stosować nie tylko do wartości numerycznych, ale także np. do wartości logicznych. Przykłady:
boolean m;
m = 5 >= 4;
m = 5 != 5 || false;
boolean w;
w = m == false;
System.out.println(w);
Bardzo ważne jest, aby nie mylić operatora równoważności z operatorem przypisania. W wyrażeniach zawierających operatory różnych typów najpierw wykonywane są operacje arytmetyczne, następnie porównania, następnie operacje logiczne, a na końcu przypisanie.
Warunkowa instrukcja if
Operator
if
czuwa nad wykonaniem lub pominięciem instrukcji w zależności od określonego warunku logicznego. Jeśli warunek jest spełniony,
instrukcja jest wykonywana.
if (stan) инструкция;
Zamiast instrukcji może wystąpić instrukcja zwykła (jedno polecenie) lub instrukcja złożona (blok zawierający kilka poleceń, w tym inne instrukcje warunkowe). Przykłady (jeżeli jako wartość zmiennej zostanie podane zero, dzielenie nie zostanie wykonane, a jego wynik nie zostanie wyświetlony na ekranie):
int a = 25;
if (a != 0) System.out.println( 100/a );
int b = 25;
if (b != 0) {
System.out.println( 100/b );
}
Pomimo tego, że kod w pierwszym przykładzie wygląda na bardziej zwarty, dopiero w drugim przykładzie możliwe byłoby wykonanie kilku instrukcji, jeśli warunek jest spełniony. Operator
if
posiada format z dodatkową częścią
else
:
if (stan)
инструкция1;
else
инструкция2;
Jeśli
warunek jest prawdziwy, wykonywana jest instrukcja prosta lub złożona 1 , a jeśli warunek jest fałszywy, wykonywana jest
instrukcja prosta lub złożona 2 . Przykład:
int a = 0;
if (a != 0) System.out.println( 100/a );
else System.out.println("На нуль делить нельзя");
GO TO FULL VERSION