मैं जावा की आधिकारिक ट्यूटोरियल से पढ़ने में ऑपरेटरों कि उपसर्ग और पोस्टफ़िक्स ++ - अलग precedences है:पूर्वता और - जावा
पोस्टफ़िक्स: expr ++ expr--
एकल : ++ expr --expr + expr -expr ~!
ट्यूटोरियल के अनुसार, ऐसा करना चाहिए नहीं इस
d = 1; System.out.println(d++ + ++d);
प्रिंट आउट 6 के बजाय 4 (d++
घ 2, ++d
यह 3 बनाता है बनाता है)?
मैं ++d
के विवरण पहले से मूल्यांकन किया जा रहा है, लेकिन अगर d++
उच्च पूर्वता तो है ++d
, क्यों नहीं d++
पहले मूल्यांकन किया जा रहा है? और क्या अधिक है, किस मामले में d++
दिखाता है कि इसकी उच्च प्राथमिकता है?
संपादित करें:
d = 1; System.out.println(++d * d++);
यह रिटर्न 4. ऐसा लगता है कि यह 1 * 3 2 * 2, के बजाय होना चाहिए:
मैं निम्नलिखित की कोशिश की।
इस तरह के प्रश्न मुझे बेहद निराश करते हैं। कोई भी * कभी * कोड 'System.out.println (डी ++ + ++ डी) जैसे कोड लिखता है;' तो आप परवाह क्यों करते हैं? यह एक सुपर-तुच्छता है। – Qwerky
@Qwerky हालांकि कोई भी इस तरह कोड लिख सकता है, शायद यह स्कूल के लिए है। शिक्षक/प्रोफेसर इस तरह के पूछने से प्यार करते हैं "यह इस तरह कभी लिखा नहीं जाएगा, लेकिन हम यह देखने के लिए किसी भी तरह से जांच कर रहे हैं कि क्या आप समझते हैं कि यह कैसे काम करता है" प्रश्न। –
@Qwerky आपको निराश करने के लिए खेद है :) कारण से मैंने पूछा, शायद यह जिज्ञासा है। मुझे भाग्यशाली है क्योंकि मैं कोई बिल्ली नहीं हूँ। –