– Chciałbym opowiedzieć Ci coś o porównywaniu zmiennych w Javie.

– Znasz już najprostsze operatory porównania – mniejszy niż (<) i większy niż (>).

– Tak.

– Są także takie operatory jak równy (==) i różny (!=). A także mniejszy bądź równy (<=) i większy bądź równy (>=).

– Zaczyna się robić interesująco.

– Zauważ, że w Javie nie ma operatorów =< i =>!

– Znak = jest używany do operacji przypisania. Dlatego właśnie dwa znaki równości (==) są używane do sprawdzania identyczności. Aby sprawdzić, czy zmienne są różne, użyj operatora !=.

– Rozumiem.

– Kiedy porównujemy dwie zmiennie w Javie, używając operatora ==, porównujemy ich zawartość.

– A zatem, dla zmiennych prostych to ich wartości są porównywane.

– W przypadku zmiennych referencyjnych porównywane są ich referencje. Załóżmy, że mamy identyczne, ale odrębne obiekty. Ponieważ referencje do nich się różnią, porównanie pokaże, że nie są one równe, np. wynik porównania będzie false (fałszywy). Porównanie referencji będzie true (prawdziwe), tylko jeśli obie referencje wskazują na ten sam obiekt."

– Aby porównać wewnętrzne zawartości obiektów, używamy specjalnej metody equals (jest równy). Ta metoda (i wszystkie metody klasy Obiektu) są dodawane do Twojej klasy przez kompilator, nawet jeśli ich nie zadeklarujesz. Pokażę Ci kilka przykładów:

Kod Wyjaśnienie
1
int a = 5;
int b = 5;
System.out.println(a == b);
Porównaj proste typy.
Na ekranie zostanie wyświetlone true.
2
Kot kot1 = new Kot("Oskar");
Kot kot2 = kot1;
System.out.println(kot1 == kot2);
Porównaj referencje.
Na ekranie zostanie wyświetlone true.
Obie zmienne przechowują referencje do tego samego obiektu.
3
String s = new String("Mama");
String s2 = s;
System.out.println(s == s2);
Porównaj referencje.
Na ekranie zostanie wyświetlone true.
Obie zmienne przechowują referencje do tego samego obiektu.
4
Kot kot1 = new Kot("Oskar");
Kot kot2 = new Kot("Oskar");
System.out.println(kot1 == kot2);
Porównaj referencje.
Na ekranie wyświetli się false.
Obie zmienne odnoszą się do identycznych obiektów Kot, ale nie do tego samego obiektu.
5
String s = new String("Mama");
String s2 = new String("Mama");
System.out.println(s == s2);
Porównaj referencje.
Na ekranie wyświetli się false.
Obie zmienne odnoszą się do identycznych obiektów String, ale nie do tego samego obiektu.
6
String s = new String("Mama");
String s2 = new String("Mama");
System.out.println(s.equals(s2));
Porównaj obiekty.
Na ekranie zostanie wyświetlone true.
Obie zmienne odnoszą się do identycznych obiektów String.

– Oh, prawie zapomniałem! Mam dla Ciebie trochę ćwiczeń:

4
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Mniejsza z dwóch liczb
Wszystkie algorytmy wyszukiwania i sortowania bazują na porównaniach. Jeśli się postarasz, szybko sobie poradzisz z tym tematem. W międzyczasie sugerujemy, by zacząć od czegoś mniejszego: napisz program, który znajduje mniejszą z dwóch liczb. Znajdź taką liczbę i wyświetl. A jeśli liczby są takie same, wyświetl jedną z nich.
4
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Największa z czterech liczb
Znajdowanie maksimum jest operacją n-arną (operacją na n liczbach), która zwraca największą z wielu liczb. Nieważne. W tajnym centrum CodeGym nie dbamy za bardzo o definicje. Jesteśmy tutaj, aby nauczyć się pisać kody. W tym zadaniu musisz za pomocą klawiatury wprowadzić cztery liczby. A potem ustalić, która z nich jest największa i wyświetlić ją na ekranie.
8
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Sortowanie trzech liczb
Planeta Linearny Chaos jest zamieszkana przez izomorfy. Podobno to oni wynaleźli algorytmy sortujące. Ich mózgi są niesłychanie poukładane. Wydają oni wizy planetarne tylko tym ludziom, którzy znają przynajmniej 7 algorytmów sortujących. Zróbmy pierwszy krok w kierunku Linearnego Chaosu: Odczytaj z klawiatury trzy liczby, ułóż je w kolejności malejącej, a następnie wyświetl je na ekranie.
4
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Jola czy Jola?
Jola, administratorka Firmy X, nauczyła się pilotować statek powietrzny i odleciała na inną planetę. Ludzie w Firmie X są dobrzy i szczerzy. Są tylko trochę roztrzepani i mylą imiona. Dlatego zdecydowali, że nowy administrator także będzie miał na imię Jola. Pomóżmy Firmie X znaleźć ich Jolę: napisz program, który sprawdza identyczność dwóch wprowadzonych imion.
2
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
18+
Czy jakiekolwiek dziecko zamyka stronę internetową po wyświetleniu się informacji, że jest ona przeznaczona tylko dla użytkowników od 18 lat? Bez względu na to, że nie przynosi to skutku, taka weryfikacja wieku nadal jest popularna. Napisz program, który pyta o wiek użytkownika: Jeśli odpowiedź to <18, program wyświetla "Podrośnij trochę".
2
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Strategia ochroniarzy
Nocny klub Cnota wyznaczył Firmę X, aby utworzyli w klubie ochronę. Młodszy programista (czyli Ty) został poproszony o metodę identyfikacji gościa, która sprawdza jego wiek. Każdy gość będzie musiał za pomocą klawiatury wprowadzić swoje imię i wiek. Jeśli ma on co najmniej 20 lat, automatyczny ochroniarz powinien zapewnić gościa, że wszystko jest w porządku – wystarczy, by miał 18 lat.
4
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Trzy liczby
Wprowadzanie danych z klawiatury, porównania liczbowe i wyświetlanie na ekranie – studenci i studentki czwartego poziomu CodeGym doskonalą te umiejętności, aż staną się automatyczne. Napiszmy program, w którym użytkownik wprowadza trzy liczby z klawiatury. A następnie dokonamy porównania. Jeśli znajdziemy liczbę, która różni się od dwóch pozostałych, wyświetlimy jej numer porządkowy.
2
Zadanie
Składnia Java,  poziom 4lekcja 6
Niedostępne
Target niedostępny!
Militarny robot został wyposażony we wzrok, który pomaga mu zestrzelić puszki wroga. Informator przekazuje robotowi koordynaty lokalizacja wroga (szerokość i długość geograficzną). Napiszmy program, który pomaga robotowi obliczyć kwadrant, w którym znajdują się puszki wroga.