CodeGym/Kurs Javy/Składnia Java/Porównywanie i ustalanie warunków

Porównywanie i ustalanie warunków

Dostępny

– 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.
Komentarze (19)
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Anonymous #11598459
Poziom 6 , Zurich, Switzerland
29 listopada 2024, 13:51
zadanie "Target niedostepny!" - co z przypadkiem, gdy jedna z liczb albo dwie to 0 ?
Anonymous #11566258
Poziom 7 , Warsaw, Poland
24 września 2024, 21:38
Jola czy Jola? Znowu to samo - dostajemy zadanie gdzie należy użyć metody "length()", której wcześniej nigdzie nie opisano... Słabo...
Teh Kec
Poziom 5 , United Kingdom, United Kingdom
17 grudnia 2023, 22:32
musisz użyć : if (a.equals(b)) i wtedy wynik bedzie TRUE
Anonymous #11231933
Poziom 10 , Sosnowiec, Poland
6 stycznia 2023, 21:59
Niezależnie od tego czy oba imiona są różne (John Michael) czy też identyczne (Michael Michael) formuła if(a==b) daje w wyniku FALSE. W programie Intellij IDEA ta sama formuła daje prawidłowy wynik TRUE dla imion identycznych (np. Michael Michael). Coś jest tu namieszane.
Anonymous #11274698
Poziom 8 , Gorzow Wielkopolski, Poland
14 marca 2023, 12:54
Możesz mi pokazać oba kody? Może jakoś pomogę
Maciek Kordalski
Poziom 5 , Buchbach, Germany
22 marca 2023, 17:19
typ String jest obiektem, dlatego jego wartość trzeba porównać operatorem equals
Tomasz
Poziom 7 , Wrocław, Poland
8 czerwca 2020, 09:14
Witam, mam pytanie a propo porównywania. Gdy prawdzam ten przykład w NetBeans to wychodzi false.. dlaczego?
Kot kot1 = new Kot("Oskar");
Kot kot2 = new Kot("Oskar");
System.out.println(kot1.equals(kot2));
hidden #10661518
Poziom 14
10 września 2020, 12:26
bo porównujesz referencje (adresy w pamięci) obiektów. Aby metoda equals działała musisz ją nadpisać. W niej określasz(w tej nadpisywanej) na na podstawie jakich pól ma porównywać
WIDMO
Poziom 25 , Gdańsk, Poland
Expert
8 kwietnia 2020, 11:02
W "3 liczby" w "Requirements" powinna być zdefiniowana sytuacja gdy 3 liczby są takie same ;)
piotrmaceluch QA Automation Engineer w GlobalLogic
27 lipca 2022, 22:47
Nie, ponieważ jest zdefiniowane założenie, iż jedna z liczb się rózni.
Jakub Bryjan
Poziom 4 , Lodz, Poland
4 marca 2020, 14:12
Uważam, że trochę wcześniej powinna być ta lekcja :) Bo już we wcześniejszych zadaniach używało się tych operatorów logicznych.
Anna
Poziom 5 , Krakow, Poland
18 grudnia 2019, 11:43
Czy ktoś zrobił sortowanie 3 liczb?
Msaters
Poziom 20 , Legnica, Poland
22 grudnia 2019, 11:22
tak
Krzysztof
Poziom 7 , Ełk, Poland
30 grudnia 2019, 22:40
Tak
Damian Siadaczka
Poziom 20 , Warszawa, Poland
15 stycznia 2020, 11:04
musisz stworzyć dodatkową zmienną, która tymczasowo będzie przechowywać wartość jednej z liczb co ułatwi zmiennym wymienić się wartościami
Jakub Kurlak
Poziom 41 , Warszawa, Polska
16 stycznia 2020, 19:38
Można i tak, ale na piechotę też nie jest ciężko :)
Filip Hałas
Poziom 8 , Bydgoszcz, Poland
22 stycznia 2020, 10:25
zrob tablice liczb i uzyj sortowania a nastepnie wywolaj liczby w petli odwracajac kolejnosc :)
Michał Łanowy
Poziom 9 , Warsaw, Poland
13 lutego 2020, 18:30
hej, ja tak zrobiłem. program zwraca wynik tak jak powinien, jednak nie przechodzi testu. Nie jest spełnione ostatnie wymaganie. o co może chodzić?
MarcinJava
Poziom 8 , Switzerland
2 listopada 2022, 03:12
Moze nie dales opcji rownosci liczb? hm ja to zobilem ta instrukcja trojargumentowa i tez lalka :)