Ko govorimo o prednosti v Javi, je na prvem mestu operater. V Javi so določena določena pravila, ki določajo vrstni red, v katerem se ovrednotijo operatorji v izrazu. Prednost operaterja je koncept določanja skupine izrazov v izrazu. Za ovrednotenje izrazov je odgovoren prednostni operater. notri Java , oklepaji() in Indeks matrike[] imajo največjo prednost v Javi. Na primer, seštevanje in odštevanje imata večjo prednost kot operatorja za levi premik in desni premik.
Spodaj je definirana tabela, v kateri je operator z najnižjo prednostjo prikazan na vrhu.
Prednost | Operater | Vrsta | Asociativnost |
---|---|---|---|
1) | = += -= *= /= %= | Dodelitev Dodatna naloga Odštevanje naloga Naloga množenja Dodelitev delitve Dodelitev modula | Od desne proti levi |
2) | ? : | Ternarni pogojnik | Od desne proti levi |
3) | || | Logični ALI | Od leve proti desni |
4) | && | Logični IN | Od leve proti desni |
5) | | | Bitno vključujoč ALI | Od leve proti desni |
6) | ^ | Bitno izključujoč ALI | Od leve proti desni |
7) | & | Bitno IN | Od leve proti desni |
8) | != == | Relacijski ni enak Relacijski je enak | Od leve proti desni |
9) | < <= > >= instanceof=> | Relacijski manj kot Relacijski manj kot ali enako Relacijski večji od Relacijski večji ali enak Primerjava vrst (samo predmeti) | Od leve proti desni |
10) | >> << >>> | Bitni premik v desno z razširitvijo predznaka Bitni premik v levo Bitni premik v desno z ničelno razširitvijo | Od leve proti desni |
enajst) | - + | Odštevanje Dodatek | Od leve proti desni |
12) | * / % | Množenje Delitev Modul | Od leve proti desni |
13) | - + ~ ! (vrsta) | Enarni minus Enarni plus Unarni bitni komplement Enarna logična negacija Enarna vrsta | Od desne proti levi |
14) | ++ -- | Enarni postinkrement Enarni postdekrement | Od desne proti levi |
petnajst) | · () [] | Operator pike Oklepaji Indeks matrike | Od leve proti desni |
Prednostni vrstni red
Ko si dva operatorja delita en operand, je prvi operator z najvišjo prednostjo. Na primer, x + y * z se obravnava kot x + (y * z), medtem ko se x * y + z obravnava kot (x * y) + z, ker ima operator * največjo prednost v primerjavi z operatorjem +.
kako prenesti youtube video vlc
Asociativnost
Asociativnost je koncept, povezan z operatorji, ki se uporabijo, ko v izrazu prideta dva operatorja z enako prednostjo. Koncept asociativnosti je zelo koristen za izhod iz te situacije. Recimo, da imamo izraz a + b - c (operatorja + in - imata enako prednost) , in ta izraz bo obravnavan kot (a + (b - c)) ker so ti operatorji asociativni od desne proti levi. Po drugi strani pa bo a+++--b+c++ obravnavan kot ((a++)+((--b)+(c++))) ker so unarni operatorji postinkrementa in dekrementa desno proti levi asociativni.
Spodaj je opredeljen primer, da razumete, kako je izraz ovrednoten z uporabo prednostnega vrstnega reda in asociativnosti?
Izraz: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3
rešitev:
1) V zgornjem izrazu je operator z najvišjo prednostjo () . Torej, oklepaj je prvi in prvi izračuna.
x = 4 / 2 + 8 * 4 - 7 % 3
2) Zdaj, /, * in % operaterji imajo enako prednost in najvišjo od + in - Tukaj za njihovo reševanje uporabljamo koncept asociativnosti. Asociativi teh operaterjev so od leve proti desni. Torej, / operater gre najprej in nato * in % istočasno.
lokalni datum
x = 2 + 8 * 4 - 7 % 3
x = 2 + 32 - 7 % 3
x = 2 + 32 - 1
3) Zdaj, + in - oba operatorja imata enako prednost in asociativnost teh operatorjev lest v desno. Torej, + operater bo šel prvi in nato - bom šel.
x = 34 - 1
x = 33
kakšna je razlika med megabajtom in gigabajtom
HighestPrecedence.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); } }
Izhod