यह एक बहुत ही छोटी समस्या है: चार बुलियन फ़ंक्शन हैं: ए(), बी(), सी() और डी()। मैं उन्हें तब तक कॉल करना चाहता हूं जब तक कि पहला true
लौटा न जाए। बजाय कर के पारंपरिकशॉर्ट सर्किट ऑपरेशंस के साथ जंजीर आईएफएस को प्रतिस्थापित करना
if(!a()) {
if(!b()) {
if(!c()) {
d();
}
}
}
या
if(!a() && !b() && !c()) d();
मैं एक लघु सर्किट मूल्यांकन के रूप में अभिव्यक्ति लिखने के बारे में सोचा।
(a() || b() || c() || d());
लेकिन मैंने कभी भी इस परीक्षण को सी/सी ++ कोड में नहीं देखा है। क्या इस दृष्टिकोण के साथ कोई समस्या है कि मुझे याद आ रही है?
धन्यवाद।
मैं * पांच * बूलियन फ़ंक्शन देख सकता हूं। –
@chris या अर्थ नहीं बदलता है: डी() केवल तब निष्पादित किया जाता है जब अन्य सभी कार्य झूठे होते हैं। – Loghorn
मैं इसके रखरखाव परिप्रेक्ष्य से इसके खिलाफ सलाह दूंगा। यह लोगों के लिए तत्काल स्पष्ट नहीं हो सकता है कि जब वे संक्षिप्त सर्किट संस्करण देखते हैं तो कोड क्या होता है (यदि यह आपके लिए चिंता का विषय है)। तथ्य यह है कि आपको SO पर व्यवहार के बारे में पूछना था, यह संकेत होना चाहिए कि क्या होगा जब अन्य लोग आपका कोड पढ़ेंगे। – Michael