IIf()
फ़ंक्शन और IIf()
कथन मौलिक रूप से भिन्न जानवर हैं।
दुर्भाग्य से, उन्हें अलग बताना लगभग असंभव है। और फिर भी, ऐसा करने में सक्षम होना महत्वपूर्ण है। क्यों?
क्योंकि यह IIF() फ़ंक्शन रनटाइम त्रुटि होने की प्रतीक्षा में है:
IIf(Attempts = 0, 0, Successes / Attempts)
जबकि यह IIF() कथन Attempts = 0
. होने पर भी सुरक्षित रूप से एक मान लौटाएगा :
IIf(Attempts = 0, 0, Successes / Attempts)
तो, क्या आप दोनों में अंतर देख सकते हैं?
उन्हें अलग बताना
यदि आप ऊपर दिए गए दो नमूनों के बीच अंतर नहीं देख सकते हैं, ऐसा इसलिए है क्योंकि कोई अंतर नहीं है।
द IIf()
कार्य IIf()
. के समान दिखता है बयान।
अंतर यह है कि कैसे–या अधिक सटीक रूप से, कहां– उनका मूल्यांकन किया जाता है।
- IIF फ़ंक्शन VBA.Interaction मानक पुस्तकालय का सदस्य है।
- IIF बयान जेट/एसीई डेटाबेस इंजन की अभिव्यक्ति सेवा (acees.dll) द्वारा मूल्यांकन किया जाता है।
मैंने यहां कोड और एक्सप्रेशन के बीच अंतर के बारे में लिखा है:
एक्सप्रेशन बनाम कोड कब कोड कोड नहीं है? जब यह एक अभिव्यक्ति है। क्या अंतर है और वास्तव में कौन परवाह करता है? आइए ढूंढते हैं। अब कोई सेट नहीं हैमाइक वोल्फIIF() फ़ंक्शन और IIF() स्टेटमेंट के बीच मूलभूत अंतर
तीन शब्द:शॉर्ट-सर्किट मूल्यांकन।
- IIF बयान पास है।
- IIF फ़ंक्शन नहीं।
शॉर्ट-सर्किट मूल्यांकन क्या है?
शॉर्ट-सर्किट मूल्यांकन में, कोड केवल उन अभिव्यक्तियों का मूल्यांकन करता है जो परिणाम निर्धारित करने के लिए आवश्यक हैं।
आईआईएफ स्टेटमेंट और आईआईएफ फंक्शन दोनों तीन तर्क लेते हैं:
- expr: एक बूलियन स्थिति
- ट्रूपार्ट: अगर expr . है तो वापस आने का परिणाम सच है
- झूठा हिस्सा: अगर expr . है तो वापस आने का परिणाम गलत है
IIF कथन के साथ, उन तर्कों में से केवल दो का ही मूल्यांकन किया जाता है:expr और–expr– . के परिणाम के आधार पर या तो truepart या गलत भाग ।
आईआईएफ फ़ंक्शन के साथ, सभी तीन तर्कों का मूल्यांकन किया जाना चाहिए, इससे पहले कि वे फ़ंक्शन में पास हो जाएं।
यह क्यों मायने रखता है
आइए मूल उदाहरण कोड पर वापस जाएं:
IIf(Attempts = 0, 0, Successes / Attempts)
क्या होता है यदि प्रयासों . का मान शून्य है?
IIF कथन
- द एक्सपीआर सत्य का मूल्यांकन करता है।
- द ट्रूपार्ट
0
. का मूल्यांकन करता है । - विवरण रिटर्न
0
।
IIF फ़ंक्शन
- द एक्सप्र सही का मूल्यांकन करता है।
- द ट्रूपार्ट
0
. का मूल्यांकन करता है । - द झूठा भाग #ERROR#:शून्य से भाग . का मूल्यांकन करता है
फ़ंक्शन version एक त्रुटि देता है क्योंकि इसे truepart . दोनों का मूल्यांकन करने के लिए मजबूर किया गया था और गलत भाग भाव।
कहां है IIF एक वक्तव्य के रूप में माना जाता है?
आईआईएफ निम्नलिखित स्थानों में एक बयान के रूप में मूल्यांकन किया जाता है:
- प्रश्न
- फ़ॉर्म/रिपोर्ट/नियंत्रण गुण (उदा., टेक्स्टबॉक्स नियंत्रण स्रोत)
- एक्सेस एप्लिकेशन।Eval() फ़ंक्शन
अधिक विवरण के लिए—इसमें यह भी शामिल है कि कैसे निश्चित रूप से परीक्षण किया जाए कि क्या IIF एक बयान या एक समारोह के रूप में माना जा रहा है - भाव और कोड के बीच अंतर पर मेरा लेख पढ़ें:अभिव्यक्तियाँ बनाम कोड .