Als we het hebben over prioriteit in Java, komt de operator op de eerste plaats. Er zijn bepaalde regels gedefinieerd in Java om de volgorde te specificeren waarin de operatoren in een expressie worden geëvalueerd. Voorrang van operator is een concept voor het bepalen van de groep termen in een uitdrukking. De operatorprioriteit is verantwoordelijk voor het evalueren van de expressies. In Java , haakjes() En Array-subscript[] hebben de hoogste prioriteit op Java. Optellen en aftrekken hebben bijvoorbeeld een hogere prioriteit dan de operatoren voor linkerverschuiving en rechterverschuiving.
Hieronder ziet u een gedefinieerde tabel waarin de operator met de laagste prioriteit bovenaan wordt weergegeven.
Voorrang | Exploitant | Type | Associativiteit |
---|---|---|---|
1) | = += -= *= /= %= | Opdracht Toevoeging opdracht Aftrekking opdracht Vermenigvuldiging opdracht Divisie opdracht Modulustoewijzing | Rechts naar links |
2) | ? : | Ternair voorwaardelijk | Rechts naar links |
3) | || | Logische OF | Van links naar rechts |
4) | && | Logisch EN | Van links naar rechts |
5) | | | Bitgewijze inclusief OR | Van links naar rechts |
6) | ^ | Bitwise exclusieve OR | Van links naar rechts |
7) | & | Bitsgewijs EN | Van links naar rechts |
8) | != == | Relationeel is niet gelijk aan Relationeel is gelijk aan | Van links naar rechts |
9) | < <= > >= exemplaarvan=> | Relationeel minder dan Relationeel kleiner dan of gelijk Relationeel groter dan Relationeel groter dan of gelijk Typevergelijking (alleen objecten) | Van links naar rechts |
10) | >> << >>> | Bitsgewijs naar rechts verschuiven met tekenverlenging Bitsgewijs naar links verschuiven Bitsgewijze verschuiving naar rechts met nulextensie | Van links naar rechts |
elf) | - + | Aftrekken Toevoeging | Van links naar rechts |
12) | * / % | Vermenigvuldiging Divisie Module | Van links naar rechts |
13) | - + ~ ! (type) | Unair min Unair plus Unaire bitsgewijze aanvulling Unaire logische ontkenning Unaire typecast | Rechts naar links |
14) | ++ -- | Unaire post-increment Unaire post-verlaging | Rechts naar links |
vijftien) | · () [] | Punt-operator Haakjes Array-subscript | Van links naar rechts |
Voorrangsvolgorde
Wanneer twee operators een enkele operand delen, gaat de operator met de hoogste prioriteit als eerste. x + y * z wordt bijvoorbeeld behandeld als x + (y * z), terwijl x * y + z wordt behandeld als (x * y) + z omdat *-operator de hoogste prioriteit heeft in vergelijking met +-operator.
np.histogram
Associativiteit
Associatief is een concept dat verband houdt met de operatoren die worden toegepast wanneer twee operatoren met dezelfde prioriteit in een uitdrukking voorkomen. Het associativiteitsconcept is erg nuttig om vanuit die situatie te komen. Stel dat we een uitdrukking a + b - c hebben (+ en - operators hebben dezelfde prioriteit) , en deze expressie wordt behandeld als (a + (b - c)) omdat deze operatoren van rechts naar links associatief zijn. Aan de andere kant wordt a+++--b+c++ behandeld als ((a++)+((--b)+(c++))) omdat de unaire operatoren na het verhogen en verlagen van rechts naar links associatief zijn.
Hieronder wordt een voorbeeld gedefinieerd om te begrijpen hoe een uitdrukking wordt geëvalueerd met behulp van prioriteitsvolgorde en associativiteit.
Uitdrukking: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3
Oplossing:
1) In de bovenstaande uitdrukking is de operator met de hoogste prioriteit () . Het haakje komt dus eerst en wordt als eerste berekend.
while en do while-lus in Java
x = 4 / 2 + 8 * 4 - 7 % 3
2) Nu, /, * En % operators hebben dezelfde prioriteit en de hoogste van de + En - Hier gebruiken we het associativiteitsconcept om ze op te lossen. De associatieve van deze operatoren zijn van links naar rechts. Dus, / operator gaat eerst en dan * En % tegelijkertijd.
x = 2 + 8 * 4 - 7% 3
x = 2 + 32 - 7% 3
x = 2 + 32 - 1
3) Nu, + En - operatoren hebben beide ook dezelfde prioriteit, en de associativiteit van deze operatoren minder naar rechts. Dus, + operator zal eerst gaan, en dan - zal gaan.
c++ converteert in naar string
x = 34 - 1
x = 33
HoogstePrecedence.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); } }
Uitvoer