– Cześć, Amigo. Opowiem Ci coś o nowym typie danych. To typ boolean. Zmienne tego typu mogą przyjmować tylko dwie wartości: true i false.

– Jak tego użyć?

– Ten typ jest domyślnie używany w wielu miejscach. Tak jak każda operacja dodawania tworzy liczbę, tak wynikiem każdego porównania jest boolean. Oto kilka przykładów:

Kod Wyjaśnienie
1
boolean m;
Te dwa wyrażenia są równoważne. Domyślną wartością zmiennej boolean jest false.
2
boolean m = false;
3
if (a > b)
    System.out.println(a);
Wynik porównania (true lub false) zostanie przypisany do zmiennej m. Warunek jest spełniony, jeśli wyrażenie przyjmuje wartość true.
4
boolean m = (a > b);
if (m)
    System.out.println(a);
5
boolean m = (a > b);
if (m == true)
    System.out.println(a);
Nie ma potrzeby porównywania zmiennej logicznej (boolean) z true lub false. Wynikiem porównania będzie boolean, który odpowiada innej zmiennej. Na przykład true == true zwraca to true; true == false zwraca false.
6
boolean m = (a > b);
if (m)
    System.out.println(a);

– Więcej przykładów:

Kod Wyjaśnienie
1
public boolean czyAjestMniejszeOdB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
Ta metoda sprawdza, czy liczba a jest mniejsza niż liczba b.

A oto cztery równoważne porównania. Ostatnie jest najbardziej kompaktowe i poprawne. Zawsze staraj się użyć najkrótszego zapisu.

2
public boolean czyAjestMniejszeOdB (int a, int b)
{
   boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3
public boolean czyAjestMniejszeOdB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4
public boolean czyAjestMniejszeOdB (int a, int b)
{
    return a < b;
}

– Co, jeśli chcę zapisać 0<a<b?

– Java nie ma operatora porównania, który stosuje trzy operandy. Także będziesz musiał zrobić to tak: (0<a) ORAZ (a<b).

– Mam napisać słowo ORAZ?

– Zaczekaj. Wytłumaczę Ci to. Java ma trzy operatory logiczne: ORAZ, LUB i NIE. Możesz przy ich pomocy tworzyć konstrukcje o większej złożoności. Możesz używać tych operatorów z wyrażeniami boolean. Zatem nie możesz zapisać (a+1) ORAZ (3), ale zapis (a>1) ORAZ (a<3) jest w porządku.

Operator NIE jest pojedynczy: wpływa tylko na wyrażenie po prawej stronie. Jego działanie przypomina bardziej działanie znaku minus przy liczbie ujemnej, a nie znaku mnożenia między dwiema liczbami.

– Możesz przeprowadzać różne operacje na zmiennych (logicznych) boolean.

– Na przykład jakie?

– Przyjrzyjmy się temu.

Operator logiczny Zapis w Javie Wyrażenie Wynik
ORAZ && true && true true
true && false false
false && true false
false && false false
LUB || true || true true
true || false true
false || true true
false || false false
NIE ! ! true false
! false true
Powszechne kombinacje i wyrażenia m && !m false
m || !m true
! (a && b) !a || !b
! (a || b) !a && !b

– Czy możesz podać mi kilka przykładów?

– Jasne.

Zapis w Javie Zapis logiczny
(a<3) && (a>0) (a < 3) ORAZ (a>0)
(a>10) || (a<100) (a>10) LUB (a<100)
(a<b) && (!(c<=d)) (a<b) I (NIE (c<=d))

– A teraz zróbmy trochę zadań.