में कोई अंतर है, मैं बग और पढ़ने कोड को ठीक करके एडी सीख रहा हूं। मैंने कुछ देखा है अगर बयान जो "और" और दूसरों के साथ "और फिर" के साथ गिरफ्तार हैं। इसी प्रकार, "या" और अन्य जगहें हैं "या अन्य"। एक सहकर्मी का कहना है कि यह सिर्फ वाक्य रचनात्मक चीनी है और इससे कोई फर्क नहीं पड़ता। मुझे आश्चर्य है कि क्या वह सही है?क्या "और" बनाम "और फिर" IF कथन
उत्तर
एडीए and then
और or else
में तथाकथित कर रहे हैं 'शॉर्ट सर्किट' के रूपों, तदनुसार, and
और or
ऑपरेटरों:
शॉर्टकट ऑपरेटरों [
and then
,or else
] के कुछ हिस्सों का मूल्यांकन करने के लिए उपयोग किया जाता है बूलियन अभिव्यक्ति सशर्त। मूल्यांकन को तेज करने के लिए इसे कभी भी नहीं किया जाना चाहिए (आधुनिक अनुकूलन कंपाइलर्स के साथ, यह संभवतः उस प्रभाव का नहीं होगा)। सही उपयोग अपवाद बढ़ाने के लिए ज्ञात अभिव्यक्तियों का मूल्यांकन रोकने के लिए है।
उदाहरण (ऊपर स्पष्टीकरण के रूप में लिया, wikibooks/Ada से):
if Dog /= null and then G (Dog) then
Walk (Dog);
end if;
यहाँ जी (कुत्ता) मूल्यांकन किया जाएगा केवल अगर कुत्ता अशक्त नहीं है। and then
के बिना वैसे भी मूल्यांकन किया जाएगा, अगर कुत्ता वास्तव में शून्य है तो अपवाद उठाएं।
ध्यान दें कि and then
और or else
सख्ती से बोल रहे हैं, ऑपरेटरों नहीं, क्योंकि उन्हें ओवरलोड नहीं किया जा सकता है।
मैं इस wikibook को पढ़ने का सुझाव दूंगा, यह आपको एडा के माध्यम से आपकी यात्रा में बहुत मदद करेगा।)
+1 - सबसे उपयोगी संसाधन – erict
मान लीजिए कि FuncB एक समारोह है जो बूलियन लौटा रहा है जिसका दुष्प्रभाव है।
if False and FuncB then
null;
end if;
में FuncB के पक्ष प्रभाव होता है, जबकि शॉर्ट सर्किट प्रपत्र
if False and then FuncB then
null;
end if;
FuncB के पक्ष प्रभाव नहीं होती है साथ।
and then
निर्माण एक विशेषता है कि कुछ प्रोग्रामिंग भाषाओं को शॉर्ट सर्किट कहा जाता है।
आप परीक्षण और इन कोड के टुकड़े कोशिश कर रहा द्वारा इस कार्यक्षमता समझ सकते हैं:
x:=0;
if false and 1/x=1 then
null;
end if;
यह एक शून्य अपवाद द्वारा विभाजन का परिणाम देगा।
x:=0;
if false and then 1/x=0 then
null;
end if;
यह कोई अपवाद नहीं उठाएगा, क्योंकि यह दूसरी स्थिति की जांच नहीं करता है।
'झूठा और [तब] 1/x' आपको संकलन-समय त्रुटि संदेश देगा, क्योंकि' 1/x' प्रकार के नहीं है 'बूलियन '। –
- 1. == और = "if" कथन
- 2. और& (AND) और || (या) IF कथन
- 3. 'if' कथन
- 4. IF कथन
- 5. क्या एकाधिक 'if' कथन और 'if-else-if' परस्पर अनन्य स्थितियों के लिए समान हैं?
- 6. if-let कथन वैकल्पिक
- 7. PHP - नेस्टेड IF कथन
- 8. लघु IF - ELSE कथन
- 9. जावा कैसे IF कथन और दक्षता संभालता है
- 10. कैसे "if" और uboot में तुलना कथन बनाने के लिए?
- 11. #define या #if कथन त्रुटि
- 12. सीएसएस "if" कथन के समतुल्य
- 13. "अगर" और "#if";
- 14. प्रीप्रोसेसर #if कथन के लिए टूल/पार्सर?
- 15. Defines.Debug बनाम #if डीबग
- 16. क्या कोई और कथन मौजूद है?
- 17. "स्विच" कथन के साथ "if/then..else" कथन का संयोजन
- 18. 'if var` और' if let` के बीच में क्या अंतर है?
- 19. ट्रांजिस्टर के स्तर पर "if" कथन क्या है?
- 20. जावास्क्रिप्ट: || IF कथन के बजाय - क्या यह कानूनी और क्रॉस ब्राउज़र मान्य है?
- 21. "#if Foo - 0 == 0" और "#if परिभाषित (Foo) और& Foo == 0" के बीच क्या अंतर है?
- 22. इनलाइन IF कथन का उपयोग vb.net
- 23. क्या आप "if" कथन में एकाधिक कथन निष्पादित कर सकते हैं?
- 24. क्या 'if' कथन में एकाधिक कमांड पाइप करना संभव है?
- 25. जावास्क्रिप्ट एकाधिक या शर्तों IF कथन
- 26. स्पष्टता के लिए रेफैक्टर नेस्टेड IF कथन
- 27. क्या @if()
- 28. स्कैला की समझ के लिए `if` कथन
- 29. MySQL: संग्रहित प्रक्रियाओं में IF/THEN कथन
- 30. और बनाम * और | बनाम +
+1 पूछने के लिए :-) –
संक्षिप्त उत्तर - हाँ। – NWS
एनडब्ल्यूएस - एक छोटा (और सही) उत्तर नहीं है! –