मेरा संदेह शॉर्ट सर्किट ऑपरेटरों की पूर्वता के बारे में है।
शॉर्ट सर्किट ऑपरेटर का क्लासिक उदाहरण नीचे है।
अगर (संप्रदाय! = 0 && संख्या / मूल्यवर्ग> 10)
यहां आशुलिपि संचालक का उपयोग हमें शून्य त्रुटि से विभाजन को रोकने की अनुमति देता है क्योंकि संख्या / मूल्य कभी निष्पादित नहीं होता है।
अब मेरा प्रश्न जावा कहता है "/" ऑपरेटर की "और&" की तुलना में अधिक पूर्वता है, फिर "&&" के बाईं ओर का मूल्यांकन "/" से पहले कैसे किया जाता है?
उत्तर:
जवाब के लिए 5 № 1/
की तुलना में अधिक प्राथमिकता है >
, जिसकी तुलना में एक उच्च मिसाल है &&
। तो, अभिव्यक्ति
a && b / c > 0
के समान है
a && (b / c) > 0
जो वही है
a && ((b / c) > 0)
तब अभिव्यक्ति का मूल्यांकन बाईं से दाईं ओर किया जाता है।
अगर a
गलत है, तो दूसरी अभिव्यक्ति का मूल्यांकन किए बिना, पूरी अभिव्यक्ति झूठी है।
अगर a
फिर सच है b / c
पहले मूल्यांकन किया जाता है, और परिणाम 0 से तुलना की जाती है।