Prioritas operator menentukan urutan operator dalam ekspresi dievaluasi.
Sebelum Anda mulai membaca artikel ini, Anda harus memiliki pengetahuan dasar tentang Operator Java.
Sekarang, lihat pernyataan di bawah ini:
int myInt = 12 - 4 * 2;
Berapa nilai myInt? Apakah itu akan (12 - 4)*2
terjadi 16
? Atau akan menjadi 12 - (4 * 2)
, yaitu 4
,?
Jika dua operator berbagi operand yang sama, 4
dalam hal ini, operator dengan prioritas tertinggi dioperasikan terlebih dahulu.
Di Jawa, prioritas *
lebih tinggi daripada -
. Oleh karena itu, perkalian dilakukan sebelum pengurangan, dan nilai myInt adalah 4.
Tabel Urutan Operator
Tabel di bawah ini mencantumkan prioritas operator di Jawa; semakin tinggi tampilannya di tabel, semakin tinggi prioritasnya.
Prioritas Operator JavaOperator | Hak lebih tinggi |
---|---|
kenaikan dan penurunan postfix | ++ -- |
increment dan decrement awalan, dan unary | ++ -- + - ~ ! |
perkalian | * / % |
aditif | + - |
bergeser | << >> >>> |
relasional | < > <= >= instanceof |
persamaan | == != |
bitwise DAN | & |
bitwise eksklusif ATAU | ^ |
bitwise inklusif ATAU | | |
logis DAN | && |
logis ATAU | || |
terner | ? : |
tugas | = += -= *= /= %= &= ^= |= <<= >>= >>>= |
Contoh: Operator Precedence
class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )
Keluaran :
2
Prioritas operator dari prefiks ++
lebih tinggi dari pada -
operator pengurangan. Karenanya,
hasil = a - ++ c - ++ b;
setara dengan
hasil = a - (++ c) - (++ b);
Saat menangani beberapa operator dan operan dalam satu ekspresi, Anda dapat menggunakan tanda kurung seperti pada contoh di atas untuk kejelasan. Ekspresi di dalam tanda kurung dievaluasi terlebih dahulu.
Asosiasi Operator di Jawa
Jika ekspresi memiliki dua operator dengan prioritas yang sama, ekspresi tersebut dievaluasi sesuai dengan asosiatifnya (kiri ke kanan, atau kanan ke kiri). Mari kita ambil contoh.
a = b = c;
Di sini, nilai c diberikan ke variabel b. Kemudian nilai b diberikan untuk variabel a. Mengapa? Itu karena asosiasi operator = dari kanan ke kiri.
Tabel di bawah menunjukkan asosiatif operator Java bersama dengan asosiatifnya.
Prioritas dan Asosiatif Operator JavaOperator | Hak lebih tinggi | Asosiatif |
---|---|---|
kenaikan dan penurunan postfix | ++ -- | kiri ke kanan |
increment dan decrement awalan, dan unary | ++ -- + - ~ ! | kanan ke kiri |
perkalian | * / % | kiri ke kanan |
aditif | + - | kiri ke kanan |
bergeser | << >> >>> | kiri ke kanan |
relasional | < > <= >= instanceof | kiri ke kanan |
persamaan | == != | kiri ke kanan |
bitwise DAN | & | kiri ke kanan |
bitwise eksklusif ATAU | ^ | kiri ke kanan |
bitwise inklusif ATAU | | | kiri ke kanan |
logis DAN | && | kiri ke kanan |
logis ATAU | || | kiri ke kanan |
terner | ? : | kanan ke kiri |
tugas | = += -= *= /= %= &= ^= |= <<= >>= >>>= | kanan ke kiri |
Anda tidak perlu menghafal semuanya di sini. Seringkali, presedensi dan asosiativitas operator masuk akal. Anda selalu dapat kembali ke artikel ini untuk referensi jika ragu. Selain itu, Anda dapat menggunakan tanda kurung jika menurut Anda itu membuat kode Anda lebih mudah dipahami.