साथ जावा में यह 'यदि' मूल्यांकन मैं जहाँ मैं a
को मान निर्दिष्ट करने के लिए था और b
तो यह अभिव्यक्ति सही का आकलन मेरी जावा परीक्षण में यह सवाल था: दुर्भाग्य सेतीन एक साथ भाव
(a<=b && b<=a && a!=b)
, मैं था कोई जवाब नहीं था कि जवाब क्या था।
साथ जावा में यह 'यदि' मूल्यांकन मैं जहाँ मैं a
को मान निर्दिष्ट करने के लिए था और b
तो यह अभिव्यक्ति सही का आकलन मेरी जावा परीक्षण में यह सवाल था: दुर्भाग्य सेतीन एक साथ भाव
(a<=b && b<=a && a!=b)
, मैं था कोई जवाब नहीं था कि जवाब क्या था।
यहां एक साधारण चाल है।
आप इसे केवल बुलियन तर्क के साथ नहीं सोच सकते हैं। कि, इस संयोजन का उपयोग करना ...
a
b
के बराबर या उससे कम है, औरb
a
के बराबर या उससे कम है, औरa
b
... कभी भी true
वापस नहीं आएगा।
हालांकि, !=
ऑपरेटर संदर्भों की तुलना करता है यदि उसके ऑपरेंड ऑब्जेक्ट्स हैं।
तो, निम्नलिखित true
वापस आ जाएगी:
Integer a = 1;
Integer b = new Integer(1);
System.out.println(a<=b && b<=a && a!=b);
यहां होता है: एक वस्तु संदर्भ के रूप में a
b
एक वस्तु संदर्भ के रूप में के बराबर नहीं है, हालांकि निश्चित रूप से वे बराबर पूर्णांक मूल्यों पकड़ो।
यह मानता है कि 'इंटीजर' कभी भी इंटर्न नहीं होता है - जो उच्च मानों के लिए उचित धारणा है लेकिन कुछ जेवीएम कैश '-127 - 128' है। आप '10000' या कुछ का उपयोग करने के लिए बेहतर हो सकता है। – OldCurmudgeon
@OldCurmudgeon - वह 'नया इंटीजर (1) का उपयोग कर रहा है, जो स्थानीय कैश से मूल्य वापस नहीं करता है (' Integer.valueOf() 'के विपरीत)। तो यह ठीक है मुझे लगता है :) – TheLostMind
@OldCurmudgeon जवाब देने वाला था लेकिन ThwLostMind मुझे इसे हराया। स्पष्ट रूप से 'नया इंटीजर (इंट वैल्यू)' शुरू करना इंटर्निंग को अशुद्ध करता है। – Mena
'ए' और' बी' के प्रकार क्या हैं? – Tunaki
'ए' और 'बी' किसी भी संख्या रैपर हो सकते हैं जब तक वे वही हों। 'बाइट', 'कैरेक्टर' 'इंटीजर', 'लांग', 'फ्लोट',' डबल ''! =' संदर्भों की तुलना करता है लेकिन' <= 'अनबॉक्स किए गए मानों की तुलना करता है। –
यदि आपको यह पहेली पसंद है, तो 'x! = X + 0' में तीन संभावित प्रकार हैं, और' x == -x' में 22 संभावित मान/प्रकार हैं। –