Operatör önceliği, bir ifadedeki operatörlerin değerlendirilme sırasını belirler.
Bu makaleyi okumaya başlamadan önce, Java Operatörleri hakkında temel bilgilere sahip olmanız gerekir.
Şimdi aşağıdaki ifadeye bir göz atın:
int myInt = 12 - 4 * 2;
MyInt'in değeri ne olacak? (12 - 4)*2
Yani olacak 16
mı? Yoksa olacak 12 - (4 * 2)
, yani 4
?
İki operatör ortak bir işleneni paylaştığında, 4
bu durumda, en yüksek önceliğe sahip operatör ilk olarak çalıştırılır.
Java'da önceliği, önceliğinden *
daha yüksektir -
. Bu nedenle, çarpma işlemi çıkarmadan önce gerçekleştirilir ve myInt değeri 4 olacaktır.
Operatör Öncelik Tablosu
Aşağıdaki tablo, Java'daki operatörlerin önceliğini listeler; tabloda ne kadar yüksek görünürse, önceliği o kadar yüksektir.
Java Operatör ÖnceliğiOperatörler | Öncelik |
---|---|
sonek artırma ve azaltma | ++ -- |
önek artırma ve azaltma ve tekli | ++ -- + - ~ ! |
çarpımsal | * / % |
katkı | + - |
vardiya | << >> >>> |
ilişkisel | < > <= >= instanceof |
eşitlik | == != |
bitsel AND | & |
bit düzeyinde özel VEYA | ^ |
bitsel kapsayıcı VEYA | | |
mantıksal AND | && |
mantıksal VEYA | || |
üçlü | ? : |
Görev | = += -= *= /= %= &= ^= |= <<= >>= >>>= |
Örnek: Operatör Önceliği
class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )
Çıktı :
2
Ön ekin operatör önceliği ++
, -
çıkarma operatöründen daha yüksektir . Dolayısıyla
sonuç = a - ++ c - ++ b;
eşdeğerdir
sonuç = a - (++ c) - (++ b);
Tek bir ifadede birden çok operatör ve işlenenle uğraşırken, netlik için yukarıdaki örnekte olduğu gibi parantezleri kullanabilirsiniz. Parantez içindeki ifade önce değerlendirilir.
Java'da Operatörlerin İlişkilendirilmesi
Bir ifadenin benzer önceliğe sahip iki operatörü varsa, ifade ilişkiselliğine göre değerlendirilir (soldan sağa veya sağdan sola). Bir örnek alalım.
a = b = c;
Burada c'nin değeri değişken b'ye atanır. Daha sonra b'nin değeri a değişkenine atanır. Neden? Bunun nedeni = operatörünün ilişkilendirilebilirliğinin sağdan sola olmasıdır.
Aşağıdaki tablo, Java operatörlerinin ilişkilendirilebilirliğini gösterir.
Java Operatör Önceliği ve İlişkilendirilebilirliğiOperatörler | Öncelik | İlişkisellik |
---|---|---|
sonek artırma ve azaltma | ++ -- | soldan sağa |
önek artırma ve azaltma ve tekli | ++ -- + - ~ ! | sağdan sola |
çarpımsal | * / % | soldan sağa |
katkı | + - | soldan sağa |
vardiya | << >> >>> | soldan sağa |
ilişkisel | < > <= >= instanceof | soldan sağa |
eşitlik | == != | soldan sağa |
bitsel AND | & | soldan sağa |
bit düzeyinde özel VEYA | ^ | soldan sağa |
bitsel kapsayıcı VEYA | | | soldan sağa |
mantıksal AND | && | soldan sağa |
mantıksal VEYA | || | soldan sağa |
üçlü | ? : | sağdan sola |
Görev | = += -= *= /= %= &= ^= |= <<= >>= >>>= | sağdan sola |
Burada her şeyi ezberlemenize gerek yok. Çoğu zaman operatörlerin önceliği ve birlikteliği kendi içinde anlamlıdır. Şüphe duyduğunuzda referans için her zaman bu makaleye geri dönebilirsiniz. Ayrıca, kodunuzun anlaşılmasını kolaylaştıracağını düşünüyorsanız parantez kullanabilirsiniz.