W tej części nauczymy się operator pierwszeństwo w Javie wraz z przykładami.
Co to jest pierwszeństwo operatora?
The pierwszeństwo operatora reprezentuje sposób, w jaki dwa wyrażenia są ze sobą powiązane. W wyrażeniu określa grupowanie operatorów z operandami i decyduje, w jaki sposób wyrażenie będzie oceniane.
Rozwiązując wyrażenie, należy pamiętać o dwóch rzeczach, pierwszą jest a precedens a drugie jest skojarzenie .
Precedens
Pierwszeństwo jest priorytetem przy grupowaniu różnych typów operatorów wraz z ich operandami. Ma to znaczenie tylko wtedy, gdy wyrażenie ma więcej niż jeden operator o wyższym lub niższym priorytecie. W pierwszej kolejności oceniane są operatory posiadające wyższy priorytet. Jeśli chcemy najpierw ocenić operatory o niższym priorytecie, musimy pogrupować operandy za pomocą nawiasów, a następnie dokonać oceny.
Łączność
Musimy przestrzegać skojarzeń, jeśli wyrażenie ma więcej niż dwa operatory o tym samym priorytecie. W takim przypadku wyrażenie można również rozwiązać od lewej do prawej Lub od prawej do lewej, odpowiednio.
Tabela pierwszeństwa operatorów Java
Poniższa tabela opisuje pierwszeństwo i łączność operatorów używanych w Javie.
Precedens | Operator | Typ | Łączność |
---|---|---|---|
piętnaście | () [] · | Zdanie wtrącone Indeks tablicy Wybór członka | Od lewej do prawej |
14 | ++ -- | Jednoargumentowa inkrementacja Jednoargumentowa redukcja | Od prawej do lewej |
13 | ++ -- + - ! ~ (typ) | Jednoargumentowy przyrost wstępny Jednoargumentowa dekrementacja wstępna Jednoargumentowy plus Jednoargumentowy minus Jednoargumentowa negacja logiczna Jednoargumentowe uzupełnienie bitowe Obsada typu jednoargumentowego | Od prawej do lewej |
12 | * / % | Mnożenie Dział Moduł | Od lewej do prawej |
jedenaście | + - | Dodatek Odejmowanie | Od lewej do prawej |
10 | << >> >>> | Bitowe przesunięcie w lewo Bitowe przesunięcie w prawo z rozszerzeniem znaku Bitowe przesunięcie w prawo z zerowym rozszerzeniem | Od lewej do prawej |
9 | < <= > >= wystąpienie=> | Relacyjne mniej niż Relacyjny mniejszy lub równy Relacyjne większe niż Relacyjny większy lub równy Porównanie typów (tylko obiekty) | Od lewej do prawej |
8 | == != | Relacyjne jest równe Relacyjne nie jest równe | Od lewej do prawej |
7 | & | Bitowe AND | Od lewej do prawej |
6 | ^ | Bitowe wyłączne LUB | Od lewej do prawej |
5 | | | Bitowe włącznie OR | Od lewej do prawej |
4 | && | Logiczne AND | Od lewej do prawej |
3 | || | Logiczne LUB | Od lewej do prawej |
2 | ? : | Warunek trójskładnikowy | Od prawej do lewej |
1 | = += -= *= /= %= | Zadanie Zadanie dodania Zadanie odejmowania Zadanie mnożenia Przydział dywizji Przypisanie modułu | Od prawej do lewej |
Uwaga: Im większa liczba, tym wyższy priorytet.
Przykład pierwszeństwa operatora Java
Przyjrzyjmy się pierwszeństwu operatora na przykładzie. Rozważ poniższe wyrażenie i odgadnij odpowiedź.
1 + 5 * 3
Być może myślisz, że odpowiedź będzie brzmiała 18 ale nie tak. Ponieważ operator mnożenia (*) ma wyższy priorytet niż operator dodawania (+). Dlatego wyrażenie najpierw ocenia 5*3, a następnie ocenia pozostałe wyrażenie, tj. 1+15. Dlatego odpowiedź będzie 16 .
Zobaczmy inny przykład. Rozważ następujące wyrażenie.
x + y * z / k
W powyższym wyrażeniu operacje * i / są wykonywane przed + ze względu na pierwszeństwo. y jest mnożone przez z, a następnie dzielone przez k ze względu na łączność.