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

  • Dive In

    Dive In

    17 Temmuz 2013
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011
  • spyib

    spyib

    9 Ocak 2007