Informatyk nie czyta, on przetwarza informacje.
Java - Operatory i ich priorytety
Wewnętrzne typy danych  |   Tablice  |   Literały  |   Zmienne  |   Wyrażenia  |  

Priorytety operatorów

W poniżej tabeli podana są wszystkich operatorów Javy wraz z priorytetem ich wykonania.

Priorytet Operator Nazwa Przykład
0.selektor obiektuMyObiekt.PoleObiektu
0[]indeks tablicymyAtray[5]
0()wywołanie funkcji / metodymyFunkcja(par1, par2)
1++operator inkrementacji przyrostkowej / przedrostkowejx++, ++x
1--operator dekrementacji przyrostkowej / przedrostkowejx--, --x
1~operator negacji bitowej~x
1!operator negacji logicznej!x
1instanceofoperator instancji klasyif (myObiekt instanceof myClass)
2newoperator przydziału pamięci zmiennejnew myZmienna
3*operator mnożeniax * y
3/operator dzieleniax / y
3%operator modulo (reszta z dzielenia)x % y
4+operator dodawaniax + y
4-operator odejmowaniax - y
5<<bitowe przesunięcie w lewox << 4
5>>bitowe przesunięcie w prawox >> 3
5>>>bitowe przesunięcie w prawo z wypełnieniem zeramix >>> 3
6<operator mniejszościx < y
6>operator większościx > y
6<=operator mniejszości lub równościx <= y
6>=operator większości lub równościx >= y
7= =operator porównania (równości)x = = y
7!=operator różności (nierównosci)x != y
8&bitowy iloczynx & y
9^bitowa różnicy symetrycznej (XOR)x ^ y
10|bitowa sumax | y
11&&logiczny iloczynu (AND)(x==y) && (x==z)
12||logiczna suma (OR)(x==y) || (x==z)
13?:operator if - elsez = (x==y) ? 1 : 0;
14=przypisaniex = 5;

Zmiana standardowej kolejności wykonywania działań

Przypisuje operatorom różne wartości priorytetów Java steruje kolejnością wykonywania wszelkich operacji (arytmetycznych, logicznych przypisania i innych). Może się zdarzyć, że standardowa kolejność ustalona przez Javę nie odpowiada kolejności, w jakiej operacje arytmetyczne mają być wykonywane. Na przykład, że program powinien najpierw dodać dwie wartości, a następnie uzyskany wynik przemnożyć przez pewną wartość:


	wartosc = cena + podatek * ilosc;

Gdybyśmy działanie to zapisali w podany wyżej sposób, Java wykonałaby najpierw mnożenie (podatek * ilosc), a dopiero potem dodawanie (cena + ...).
Jeżeli program musi wykonać operacje arytmetyczne lub logiczne w kolejności innej niż ich priorytety, to wyrażenia, które maja zostać obliczone jako pierwsze, należy umieścić w nawiasach okrągłych. Poprawny zapis poprzedniego działania powinien wyglądać następująco:

	wartosc = ( cena + podatek ) * ilosc;

Poniższy przykład ilustruje poprawnie zbudowany warunek logiczny sprawdzający, czy x jest różne od y lub z i jednocześnie y jest większe od 0:


	((x != y ) || ( x != z) ) && ( y > 0)
« wstecz   dalej »