Prednost Java operaterja

Prednost operaterja določa vrstni red ocenjevanja operaterjev v izrazu.

Preden začnete brati ta članek, morate imeti osnovno znanje operaterjev Java.

Zdaj pa si oglejte spodnjo izjavo:

 int myInt = 12 - 4 * 2;

Kakšna bo vrednost myInt? Ali bo (12 - 4)*2, torej 16? Ali pa bo 12 - (4 * 2), torej 4?

Ko imata dva operaterja skupni operand, se 4v tem primeru najprej operira z operaterjem z največjo prednostjo.

V Javi je prednost pred *višjo od -. Množenje se torej izvede pred odštevanjem in vrednost myInt bo 4.

Tabela prednosti operaterja

Spodnja tabela navaja prednost operaterjev v Javi; višje kot je v tabeli, večja je njegova prednost.

Prednost Java operaterja
Operaterji Prednost
povečanje in zmanjšanje postfix ++ --
povečanje in zmanjševanje predpone in unary ++ -- + - ~ !
multiplikativni * / %
dodatek + -
premik << >> >>>
relacijski < > <= >= instanceof
enakost == !=
bitni IN &
bitno izključno ALI ^
bitovno vključujoče ALI |
logično IN &&
logično ALI ||
trojna ? :
dodelitev = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Primer: Prednost operaterja

 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )

Izhod :

 2.

Prednost pred operatorjem predpone ++je večja kot prednost -operaterja odštevanja. Torej,

 rezultat = a - ++ c - ++ b;

je enakovredno

 rezultat = a - (++ c) - (++ b);

Pri obravnavi več operatorjev in operandov v enem izrazu lahko za jasnost uporabite oklepaje kot v zgornjem primeru. Najprej se izračuna izraz v oklepaju.

Združenje operaterjev v Javi

Če ima izraz dva operaterja s podobno prednostjo, se izraz izračuna glede na njegovo asociativnost (bodisi od leve proti desni ali od desne proti levi). Vzemimo primer.

 a = b = c;

Tu je vrednost c dodeljena spremenljivki b. Nato je spremenljivki a dodeljena vrednost b. Zakaj? To je zato, ker je asociativnost operatorja = od desne proti levi.

Spodnja tabela prikazuje asociativnost operaterjev Java skupaj z njihovo asociativnostjo.

Prednost in združenje operaterja Java
Operaterji Prednost Asociativnost
povečanje in zmanjšanje postfix ++ -- od leve proti desni
povečanje in zmanjševanje predpone in unary ++ -- + - ~ ! desno na levo
multiplikativni * / % od leve proti desni
dodatek + - od leve proti desni
premik << >> >>> od leve proti desni
relacijski < > <= >= instanceof od leve proti desni
enakost == != od leve proti desni
bitni IN & od leve proti desni
bitno izključno ALI ^ od leve proti desni
bitovno vključujoče ALI | od leve proti desni
logično IN && od leve proti desni
logično ALI || od leve proti desni
trojna ? : desno na levo
dodelitev = += -= *= /= %=
&= ^= |= <<= >>= >>>=
desno na levo

Tu si ni treba vsega zapomniti. Večina časa ima prednost in asociativnost operaterjev sama po sebi smiselna. V dvomih se lahko vedno vrnete na ta članek. Prav tako lahko uporabite oklepaje, če menite, da je vaša koda lažje razumljiva.

Zanimive Članki...