CodeGym /Kursy /Składnia Java /Typ boolean

Typ boolean

Składnia Java
Poziom 4 , Lekcja 7
Dostępny

– 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ń.

Komentarze (8)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Krzysztof Gadomski Poziom 6, Poland, Poland
6 stycznia 2024
W zadaniu liczby dodatnie liczby ujemne kiedy daję do sprawdzenia wyskakuje mi tylko że nie zrobiłem "Zauważ, że 0 nie jest ani dodatnią, ani ujemną liczbą". Nie wiem o co chodzi
hidden #11522547 Poziom 22
20 czerwca 2024
Przeczytaj treść zadania "Zauważ, że 0 nie jest ani dodatnią, ani ujemną liczbą.". Nie widziałem Twojego kodu ale najprawdopodobniej 0 wlicza Ci do liczb dodatnich, dlatego program nie przechodzi testów.
Przemo Poziom 17, Legnica, Poland
4 sierpnia 2023
A false i false nie powinno zwracać true?
Nao Poziom 9, Poland, Poland
16 września 2023
Nie, bo to nie zajęcia z logiki :) Zalożenie jest takie, że kod w przypadku warunku && wykona się jeśli wyrażenia po obu stronach będą true. Musisz tak ułożyć warunki, żeby taką zwrotkę otrzymać.
Alicja Namieta Poziom 14, San Diego, Poland
8 stycznia 2023
Tutaj działa mój kod, ale w IntelliJ tak jakby program nie miał końca. Wprowadzam liczbę poprzez System.in, a program jakby tego nie rejestrował 🤔
Bartosz Poziom 5, Murowana Goslina, Poland
18 grudnia 2019
Can someone help me with task 4. I don't how can I write the code.
Bartek Poziom 13, Gdansk, Poland
19 grudnia 2019
Hi, it's the same code as in task 3 but with additional check and variable.
Przemek Z. Poziom 19, Toruń, Poland
20 grudnia 2020
Zrób 3 osobne warunki dla każdej z liczb ( czy dodatnia czy ujemna). Zadeklaruj sobie int dodatnie i int ujemne. Jeśli jakaś liczba jest dodatnia lub ujemna zwiększ w odpowiednim miejscu dodatnia/ujemna o 1. Potem tylko wydrukuj 2 testy ze zmiennymi dodatnia/ujemna.