ओरेकल प्रमाणित एसोसिएट जावा एसई 8 प्रोग्रामर 1 परीक्षा के लिए तैयारी करते हुए, मैं आधिकारिक अध्ययन गाइड में टर्नरी अभिव्यक्ति के बारे में निम्नलिखित पैराग्राफ में आया:
टर्नरी अभिव्यक्ति का मूल्यांकन
जावा 7 के रूप में, टर्नरी ऑपरेटर के दाहिने हाथ के भावों में से केवल एक का मूल्यांकन रनटाइम पर किया जाएगा। शॉर्ट-सर्किट ऑपरेटरों के समान तरीके से, यदि टर्नरी ऑपरेटर के दो दाहिने हाथों में से एक में साइड इफेक्ट होता है, तो इसे रनटाइम पर लागू नहीं किया जा सकता है। आइए इस सिद्धांत को निम्न उदाहरण से स्पष्ट करें: [...]
यह कहता है कि केवल दो अभिव्यक्तियों में से एक का मूल्यांकन किया जाता है, जो निम्न उदाहरण के साथ प्रदर्शित करता है:
int y = 1;
int z = 1;
int a = y < 10 ? y++ : z++;
यहाँ, केवल y
वेतन वृद्धि, लेकिन z
जैसा कि आप उम्मीद करेंगे, वैसा नहीं है।
मैं जिस चीज को ठोकर मार रहा हूं वह पैराग्राफ की शुरुआत है (पीले रंग में चिह्नित) जहां यह कहता है "जैसा कि जावा 7, ..."। मैंने जावा 1.6 के साथ एक ही कोड का परीक्षण किया और मुझे व्यवहार में कोई अंतर नहीं मिला। मुझे उम्मीद है कि जावा 1.6 पैराग्राफ में दी गई जानकारी से दोनों भावों का मूल्यांकन करेगा। क्या किसी को अंदाजा है कि वे "जैसा कि जावा 7, ..." के साथ कहना चाहते थे?
संपादित करें: भ्रम से बचने के लिए: यह सवाल पर उबलता है, क्योंकि वे 'As Java 7' लिखते हैं, क्या कुछ ऐसा था जो टर्नरी ऑपरेटर से संबंधित था, जब जावा 6 से जावा 7 में स्विच किया गया था?