Przemysław Wionczyk
JAVA
Operatory
Operatory
1 / 11
Przemysław Wionczyk
JAVA
Grupy operatorów
Operatory możemy podzielić na kilka zestawów tematycznych:
•
arytmetyczne,
•
bitowe,
•
logiczne,
•
przypisania,
•
porównania.
2 / 11
Przemysław Wionczyk
JAVA
Operatory arytmetyczne
Mamy tu 4 zwykłe operatory działań, które są dobrze znane. To na
co trzeba zwrócić uwagę, to fakt iż dzieląc dwie liczby całkowite
otrzymamy w wyniku również liczbę całkowitą. Zatem działanie 5 / 3 da
wynik 1. Jeśli chcemy mieć wynik rzeczywisty, to musimy co najmniej
jedną z liczb zapisać jako liczbę rzeczywistą, np. 5.0 / 3 da nam wynik
1.666666667. Dodatkowym operatorem jest operator dzielenia modulo,
który używa symbolu procenta. Zwraca resztę z dzielenia, czyli dla
działania 5 % 3 zwróci wynik 2.
3 / 11
Przemysław Wionczyk
JAVA
Operatory arytmetyczne
Oprócz standardowych wersji operatorów arytmetycznych mamy
jeszcze, tak jak w C++, wersje skrócone:
a += b;
zastępuje
a = a + b;
a –= b;
zastępuje
a = a – b;
a *= b;
zastępuje
a = a * b;
a /= b;
zastępuje
a = a / b;
a %= b;
zastępuje
a = a % b;
4 / 11
Przemysław Wionczyk
JAVA
Operatory arytmetyczne
Do grona operatorów arytmetycznych zaliczamy również operatory
inkrementacji i dekrementacji. Są one jak w C++ w dwóch wersjach:
przedrostkowej (++x) i przyrostkowej (x++). Przeanalizujmy kod:
int a = 2;
System.out.println(++x);
System.out.println(x++);
W drugiej linijce mamy inkrementację przedrostkową, jest ona
wykonywana przed wykonaniem całej instrukcji wypisania napisu na
konsoli, w trzeciej linijce najpierw następuje wypisanie, a potem
inkrementacja. Zatem na ekranie zobaczymy dwie liczby 3.
5 / 11
Przemysław Wionczyk
JAVA
Przekroczenie zakresu
Gdy do zmiennej typu byte będziemy chcieli przypisać liczbę 130,
otrzymamy w wyniku błąd przekroczenia zakresu. Java radzi sobie z tym
na dwa sposoby, zależnie od momentu w którym nastąpi błąd:
•
jeżeli błąd zostanie wykryty w momencie kompilacji (np. gdy w
kodzie napiszemy byte b = 130;) to program nie skompiluje się,
•
jeżeli błąd zostanie wykryty w trakcie działania programu (np. gdy
przypiszemy byte b = a * c; gdzie a i c będą dużymy liczbami
wczytanymi od użytkownika) to liczba zostanie zawinięta do
wartości typu byte (np. ze 130 zrobi się -128+3=-125).
6 / 11
Przemysław Wionczyk
JAVA
Operatory logiczne
Mamy trzy podstawowe operatory znane z logiki matematycznej:
•
&&
odpowiednik koniunkcji
•
||
odpowiednik alternatywy
•
!
odpowiednik negacji
Działają one na wyrażeniach, które mają wartość logiczną, czyli o
których można stwierdzić czy mają wartość true czy false.
7 / 11
Przemysław Wionczyk
JAVA
Operatory przypisania
W Javie jako operator przypisania używamy, tak jak w C++,
pojedynczego znaku równości. Np.:
int a = b + c / d;
float b = 23.34f;
Do operatorów przypisania możemy zaliczyć również skrócone
wersje operatorów arytmetycznych opisanych na stronie 4.
8 / 11
Przemysław Wionczyk
JAVA
Operatory porównania
Operatory relacyjne porównują wartości liczbowe i zwracają
wartość logiczną true lub false. Mamy do dyspozycji operatory:
•
==
a == b zwraca true jeśli a i b ma tą samą wartość
•
!=
a == b zwraca true jeśli a i b mają różne wartości
•
>
•
<
•
>=
•
<=
9 / 11
Przemysław Wionczyk
JAVA
Zadania
1. Napisz program składający się jednej klasy o nazwie
„DzialaniaArytmetyczne”. W programie zadeklaruj dwie zmienne
całkowite typu int i przypisz im wartości 450 oraz 13. Wypisz na
wyjściu wyniki 4 podstawowych działań arytmetycznych
wykonanych na tych dwóch zmiennych. Dopisz analogiczny kod
dla innych typów całkowitych. Jaki wniosek można wysnuć na
temat dzielenia liczb całkowitych?
10 / 11
Przemysław Wionczyk
JAVA
Zadania
2. Napisz program składający się jednej klasy o nazwie
„DzialaniaArytmetyczne2”. W programie zadeklaruj dwie zmienne
zmiennoprzecinkowe i przypisz im wartości 45.23 oraz 13.12.
Wypisz na wyjściu wyniki 4 podstawowych działań
arytmetycznych wykonanych na tych dwóch zmiennych. Dopisz
analogiczny kod dla drugiego typu zmiennoprzecinkowego.
11 / 11