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

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014