Java'da öncelik denince akla ilk olarak operatör gelir. Bir ifadedeki operatörlerin değerlendirileceği sırayı belirtmek için Java'da tanımlanmış belirli kurallar vardır. Operatör Önceliği bir ifadedeki terim grubunu belirleme kavramıdır. İfadelerin değerlendirilmesinden operatör önceliği sorumludur. İçinde Java , parantez() Ve Dizi alt simgesi[] Java'da en yüksek önceliğe sahiptir. Örneğin, Toplama ve Çıkarma, Sola kaydırma ve Sağa kaydırma işleçlerinden daha yüksek önceliğe sahiptir.
Aşağıda, en düşük öncelikli operatörün en üstte gösterildiği tanımlanmış bir tablo bulunmaktadır.
Öncelik | Şebeke | Tip | çağrışımsallık |
---|---|---|---|
1) | = += -= *= /= %= | Atama İlave atama Çıkarma ataması Çarpma ataması Bölüm ataması Modül ataması | Sağdan sola |
2) | ? : | Üçlü koşullu | Sağdan sola |
3) | || | Mantıksal VEYA | Soldan sağa |
4) | && | Mantıksal VE | Soldan sağa |
5) | | | Bit bazında dahil VEYA | Soldan sağa |
6) | ^ | Bit bazında özel VEYA | Soldan sağa |
7) | & | Bitsel VE | Soldan sağa |
8) | != == | İlişkisel eşit değil İlişkisel eşittir | Soldan sağa |
9) | < <= > >= örneği=> | İlişkisel olarak daha az İlişkisel olarak küçük veya eşit İlişkisel olarak daha büyük İlişkisel olarak büyük veya eşittir Tür karşılaştırması (yalnızca nesneler) | Soldan sağa |
10) | >> << >>> | İşaret uzantısıyla bit bazında sağa kaydırma Bit bazında sola kaydırma Sıfır uzantılı bit bazında sağa kaydırma | Soldan sağa |
onbir) | - + | Çıkarma Ek | Soldan sağa |
12) | * / % | Çarpma işlemi Bölüm Modül | Soldan sağa |
13) | - + ~ ! ( tip) | Tekli eksi Tekli artı Tekli bitsel tamamlayıcı Tekli mantıksal olumsuzlama Tekli tipleme | Sağdan sola |
14) | ++ -- | Tekli artış sonrası Tekli azalma sonrası | Sağdan sola |
on beş) | · () [] | Nokta operatörü Parantez Dizi alt simgesi | Soldan sağa |
Öncelik sırası
İki operatör tek bir işleneni paylaştığında, en yüksek önceliğe sahip olan operatör ilk sırada yer alır. Örneğin, x + y * z, x + (y * z) olarak ele alınırken x * y + z, (x * y) + z olarak ele alınır çünkü * operatörü, + operatörüne kıyasla en yüksek önceliğe sahiptir.
android süreci acore
çağrışımsallık
İlişkisellik, aynı önceliğe sahip iki operatörün bir ifadede gelmesi durumunda uygulanan operatörlerle ilgili bir kavramdır. Çağrışım kavramı bu durumdan çıkmak için çok faydalıdır. Diyelim ki bir a + b - c ifademiz var (+ ve - operatörleri aynı önceliğe sahiptir) ve bu ifade şu şekilde ele alınacaktır: (a + (b - c)) çünkü bu operatörler sağdan sola ilişkilidir. Öte yandan, a+++--b+c++ şu şekilde ele alınacaktır: ((a++)+((--b)+(c++))) çünkü tekli artma ve eksiltme operatörleri sağdan sola ilişkiseldir.
Bir ifadenin öncelik sırası ve ilişkilendirilebilirlik kullanılarak nasıl değerlendirildiğini anlamak için aşağıda bir örnek tanımlanmıştır.
İfade: x = 4/2 + 8 * 4 - ( 5+ 2 ) %3
Çözüm:
1) Yukarıdaki ifadede en yüksek öncelikli operatör: () . Yani parantez önce gider ve önce hesap yapar.
x = 4 / 2 + 8 * 4 - 7 %3
2) Şimdi, /, * Ve % operatörler aynı önceliğe ve en yüksek değere sahiptir. + Ve - Burada bunları çözmek için çağrışım kavramını kullanıyoruz. Bu operatörlerin çağrışımları soldan sağa doğrudur. Bu yüzden, / operatör önce gider ve sonra * Ve % eşzamanlı.
android gamepigeon oynayabilir mi
x = 2 + 8 * 4 - 7 %3
x = 2 + 32 - %7 3
x = 2 + 32 - 1
3) Şimdi, + Ve - operatörlerin her ikisi de aynı önceliğe sahiptir ve bu operatörlerin ilişkilendirilebilirliği sağa doğrudur. Bu yüzden, + önce operatör gidecek, sonra - gidecek.
x = 34 - 1
x = 33
boolean'ı dizeye dönüştür
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); } }
Çıktı