Operatory relacyjne w Javie
Operatory relacyjne służą do porównania ze sobą dwóch zmiennych lub literałów.
- ==
sprawdza równość wartości - !=
różny - >=
większy, bądź równy - <=
mniejszy, bądź równy - >
większy - <
mniejszy
Powyższe operatory zwracają wartość logiczną: true lub false.
boolean v1 = 1==2; // v1 = false boolean v2 = 2==2; // v2 = true boolean v3 = 1!=2; // v3 = true boolean v4 = 1<=2; // v4 = true boolean v5 = 1>=2; // v5 = false boolean v6 = 1<2; // v6 = true
Przy porównaniach należy jednak pamiętać o typie porównywanych danych. Powinien on być taki sam dla obu argumentów lub ich typy powinny być ze sobą zgodne, przykładowo można porównać liczbę 2.5 typu float z liczbą 2 typu int, ale nie da się już porównać ich ze zmienną typu boolean. Dostalibyśmy wtedy wyjątek kompilacji.
Porównywanie ciągów znaków
W przypadku typów obiektowych np. klasy String, odpowiedzialnej za przechowywanie ciągu znaków, operatory relacyjne zachowują się w inny sposób. Operator równości (==), zamiast porównywać wartość ciągu znaków, weryfikuje czy porównywane obiekty znajdują się w tym samym miejscu w pamięci w komputerze. W efekcie czego nawet dla takich samych tekstów operator ten może (ale nie musi) zwrócić fałsz.
Natomiast do porównywania ze sobą stringów według wartości służy metoda: equals.
boolean v1 = "Hello World".equals("Ala ma kota"); // v1 = false String text = "Hello World!"; boolean v2 = text.equals("Ala ma kota"); // v2 = false