सी में एक बूलियन ++ मैं C++ निम्नलिखित निर्माण पर ठोकर खाई के लिए:ऑपरेटर | =
bool result = false;
for(int i = 0; i<n; i++){
result |= TryAndDoSomething(i);
}
मैं माना जाता है कि इस |=
OR ऑपरेटर के लिए एक शॉर्टकट था, और result
अंत अगर में true
बराबर होता है कि TryAndDoSomething
पर इनमें से कम से कम एक कॉल true
लौटा दी गई थी।
लेकिन अब मुझे आश्चर्य है कि एक से अधिक कॉल वास्तव में true
लौट सकते हैं।
result = result || TryAndDoSomething(i);
तो विधि केवल तभी वापसी false
के लिए मूल्यांकन बुलाया जाएगा, कि, कोई अन्य कॉल करने से पहले true
दिया जाता है, तो: वास्तव में अगर हम आपरेशन के रूप में विस्तार। इस प्रकार एक कॉल के बाद true
लौटा, कोई अन्य कॉल नहीं किया जाएगा।
क्या यह सही व्याख्या है?
आप इसे आसानी से परीक्षण कर सकते हैं। मैंने अभी किया, और ऐसा लगता है कि सभी कॉल किए गए हैं, न केवल पहले। –