SORU
10 EYLÜL 2014, ÇARŞAMBA


İlk idam alır Java, " " veya " "?

Java aşağıdaki kodu denedim

t1 = 5;
t2 = t1   (  t1);
System.out.println (t2);

Benim görüşüme göre , yukarıda olur'den beri daha yüksek bir önceliğe sahiptir

t2 = t1   (  t1);
t2 = t1   6;      // t1 becomes 6 here
t2 = 6   6;
t2 = 12;

Ancak, t2 için cevap 11. Biri bana açıklayabilir mi?

CEVAP
10 EYLÜL 2014, ÇARŞAMBA


Senin mantığa yakın ama tam doğru değil. Değerlendirme için operatör Soldan sağa Doğru. t1 gelir ikili op, BELİRTİN ve sonra artan ikili op OLUŞTURDUĞU önce. Bu BELİRTİN ilk yürütülür.

t2 = t1   (  t1);
t2 = 5   6;      // t1 becomes 6 here as a side effect before being read on the RHS
t2 = 11;

Bir ağaç olarak saptanmıştır,

     
  /   \
 t1     t1

Öncelik Sırası

İki operatör işlenen payı yüksek önceliğe sahip ilk operatörü gider. 1 * 2 3 olarak kabul edilir, oysa örneğin, 1 2 * 3 1 (2 * 3) tedavi, (1 * 2) çarpma beri 3 Ayrıca daha yüksek bir önceliğe sahip.

Birleşim

Aynı önceliğe sahip iki operatör zaman ifade birleşim göre değerlendirilir. Örneğin x = y = z = 17 ise tedavi olarak x = (y = (z = 17)), bırakmak gibi üç değişken değeri 17'den beri, = operatörü sağdan sola doğru birleşim (ve bir atama deyimi değerlendirir için değer üzerinde sağ tarafta). / Operatörü sağdan sola doğru birleşim olduğundan diğer yandan, 72 / 2 / 3 (72 / 2) tedavi / 3.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Police

    Android Poli

    21 NİSAN 2010
  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007