İ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
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.
Java "-by pass-başvuru" veya...
Oluşturma "mantıksal özel veya&qu...
Nasıl Ayın gün söylemek format mı&; 11...
SVN ayar "idam" Subversion d...
Dönem "kanonik form" veya &q...