Kiedy mówimy o pierwszeństwie w Javie, na pierwszym miejscu myślimy o operatorze. W Javie zdefiniowano pewne reguły określające kolejność, w jakiej oceniane są operatory w wyrażeniu. Pierwszeństwo operatora jest koncepcją określenia grupy terminów w wyrażeniu. Pierwszeństwo operatora jest odpowiedzialne za ocenę wyrażeń. W Jawa , zdanie wtrącone() I Indeks dolny tablicy[] mają najwyższy priorytet w Javie. Na przykład dodawanie i odejmowanie mają wyższy priorytet niż operatory przesunięcia w lewo i przesunięcia w prawo.
Poniżej znajduje się zdefiniowana tabela, w której na górze znajduje się operator o najniższym priorytecie.
Precedens | Operator | Typ | Łączność |
---|---|---|---|
1) | = += -= *= /= %= | Zadanie Zadanie dodania Zadanie odejmowania Zadanie mnożenia Przydział dywizji Przypisanie modułu | Od prawej do lewej |
2) | ? : | Warunek trójskładnikowy | Od prawej do lewej |
3) | || | Logiczne LUB | Od lewej do prawej |
4) | && | Logiczne AND | Od lewej do prawej |
5) | | | Bitowe włącznie OR | Od lewej do prawej |
6) | ^ | Bitowe wyłączne LUB | Od lewej do prawej |
7) | & | Bitowe AND | Od lewej do prawej |
8) | != == | Relacyjne nie jest równe Relacyjne jest równe | 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 |
10) | >> << >>> | Bitowe przesunięcie w prawo z rozszerzeniem znaku Bitowe przesunięcie w lewo Bitowe przesunięcie w prawo z zerowym rozszerzeniem | Od lewej do prawej |
jedenaście) | - + | Odejmowanie Dodatek | Od lewej do prawej |
12) | * / % | Mnożenie Dział Moduł | Od lewej do prawej |
13) | - + ~ ! ( typ) | Jednoargumentowy minus Jednoargumentowy plus Jednoargumentowe uzupełnienie bitowe Jednoargumentowa negacja logiczna Typografia jednoargumentowa | Od prawej do lewej |
14) | ++ -- | Jednoargumentowa inkrementacja Jednoargumentowa redukcja | Od prawej do lewej |
piętnaście) | · () [] | Operator kropki Zdanie wtrącone Indeks tablicy | Od lewej do prawej |
Kolejność pierwszeństwa
Kiedy dwa operatory dzielą ten sam operand, pierwszy ma najwyższy priorytet. Na przykład x + y * z jest traktowane jako x + (y * z), podczas gdy x * y + z jest traktowane jako (x * y) + z, ponieważ operator * ma najwyższy priorytet w porównaniu z operatorem +.
prędkość transmisji w Arduino
Łączność
Łączność to koncepcja związana z operatorami stosowanymi, gdy w wyrażeniu występują dwa operatory o tym samym priorytecie. Koncepcja skojarzeń jest bardzo pomocna w wyjściu z tej sytuacji. Załóżmy, że mamy wyrażenie a + b - c (operatorzy + i - mają ten sam priorytet) , a to wyrażenie będzie traktowane jako (a + (b - c)) ponieważ te operatory są skojarzone od prawej do lewej. Z drugiej strony a+++--b+c++ będzie traktowane jako ((a++)+((--b)+(c++))) ponieważ jednoargumentowe operatory postinkrementacji i dekrementacji są łączne od prawej do lewej.
Poniżej zdefiniowano przykład, aby zrozumieć, w jaki sposób wyrażenie jest oceniane przy użyciu kolejności pierwszeństwa i skojarzeń?
Wyrażenie: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3
Rozwiązanie:
1) W powyższym wyrażeniu operatorem o najwyższym priorytecie jest () . Zatem nawias jest pierwszy i najpierw wykonuje obliczenia.
x = 4 / 2 + 8 * 4 - 7% 3
2) Teraz, /, * I % operatory mają ten sam priorytet i najwyższy z + I - Tutaj używamy koncepcji skojarzeń, aby je rozwiązać. Łączność tych operatorów przebiega od lewej do prawej. Więc, / operator idzie pierwszy, a potem * I % jednocześnie.
sortowanie wiadro
x = 2 + 8 * 4 - 7% 3
x = 2 + 32 - 7% 3
x = 2 + 32 - 1
3) Teraz, + I - oba operatory mają również ten sam priorytet, a łączność tych operatorów jest po prawej stronie. Więc, + operator pójdzie pierwszy, a potem - ruszymy.
x = 34 - 1
x = 33
Python zapisz json do pliku
Najwyższe pierwszeństwo.java
//import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } }
Wyjście