operator precedence - In Java, why does an assignment in parentheses not occur before the rest of the expression is evaluated? -
विचार करें
int a = 20; A = a + (a = 5); // a == 25, क्यों नहीं 10?
सभी पूर्ववर्ती नियमों को तुच्छ नहीं करें? क्या कुछ अभिव्यक्तियों के मूल्यांकन से पहले आरएचएस पर कुछ चर? > आपके उदाहरण में पहले लोड किया गया है, और फिर कोष्ठक में बिट का मूल्यांकन किया जाता है। यदि आपने आदेश को उलट दिया है:
int a = 20; ए = (ए = 5) + ए; Println (एक);
10
... आप वाकई 10 प्राप्त करते हैं। अभिव्यक्ति का मूल्यांकन बाएं से दाएं।
इस पर विचार करें:
f () + g ()
f
को g
से पहले बुलाया जाएगा। कल्पना कीजिए कि यह कैसे अनइंड्यूयूट होगा,
f () + (g ())
के पास g
होना चाहिए f
से पहले।
यह सब (इन टिप्पणियों में अपील करने के लिए @पीआईएसएन्को के लिए धन्यवाद) में विस्तृत है।
Comments
Post a Comment