क्या कई स्थितियों को संभालने के दौरान if-else और केस कथन का उपयोग करने के बीच कोई प्रदर्शन अंतर है?यदि बनाम केस स्टेटमेंट
कौन सा पसंदीदा है?
क्या कई स्थितियों को संभालने के दौरान if-else और केस कथन का उपयोग करने के बीच कोई प्रदर्शन अंतर है?यदि बनाम केस स्टेटमेंट
कौन सा पसंदीदा है?
दिए गए संदर्भ में सबसे अधिक पढ़ने योग्य व्यक्ति का उपयोग करें।
आपके सभी लोगों के उत्तर के लिए धन्यवाद अगर केस और केस स्टेटमेंट – fealin
का उपयोग करने में बहुत मददगार हैं, हालांकि मैं सहमत हूं - यह वास्तव में प्रश्न का उत्तर नहीं देता था। सवाल प्रदर्शन लाभ के बारे में था। –
इस जवाब के बाद सवाल उठाया गया था, जोर पर जोर देना। –
कुछ भाषाओं में, सी, switch
संभवतः तेज़ हो सकता है क्योंकि इसे आमतौर पर jump table के साथ कार्यान्वित किया जाता है। कभी-कभी आधुनिक कंपाइलर कई if
एस के लिए उपयोग करने के लिए पर्याप्त स्मार्ट होते हैं।
और वैसे भी इससे कोई फर्क नहीं पड़ता, माइक्रो ऑप्टिमाइज़ेशन (लगभग) कभी उपयोगी नहीं होते हैं।
कुछ प्रोग्रामिंग भाषाएं तब प्रतिबंधित होती हैं जब आप switch
/case
कथन का उपयोग कर सकते हैं। उदाहरण के लिए, कई सी-जैसी भाषाओं में case
मान संकलन समय पर ज्ञात निरंतर पूर्णांक होना चाहिए।
प्रदर्शन विशेषताओं दो तकनीकों के बीच भिन्न हो सकता है, लेकिन आप पहले से भविष्यवाणी करने में सक्षम होने की संभावना नहीं है कि वे क्या हैं। यदि आपके आवेदन में इस कोड के लिए प्रदर्शन वास्तव में महत्वपूर्ण है, तो सुनिश्चित करें कि प्रोफ़ाइल निर्णय लेने से पहले दोनों दृष्टिकोण हैं, क्योंकि उत्तर आपको आश्चर्यचकित कर सकते हैं।
आम तौर पर, प्रदर्शन अंतर बहुत मामूली हो जाएगा, और आप इसलिए सबसे, पठनीय समझ में आता है और पोषणीय कोड का चयन करना चाहिए के रूप में आप काफी किसी भी अन्य प्रोग्रामिंग स्थिति में होना चाहिए।
जब आपके पास एक से अधिक ifelse है, तो मैं स्विच/चयन की अनुशंसा करता हूं। फिर फिर, यह हमेशा काम नहीं करता है।
आप ऐसा ही कुछ मान लीजिए (अनुशंसित नहीं लेकिन उदाहरण के लिए केवल)
If a > 0 and b > 0 then
' blabla
ElseIf b = -5 then
' blabla2
ElseIf a = -3 and b = 6 then
End If
एक स्विच का उपयोग करते हुए/चुनिंदा जाने का रास्ता नहीं है। हालांकि, जब इस
select case a
case 1:
' blabla
case 2:
' blabla2
case 3:
' blabla3
case 4:
' blabla4
case else:
end select
उन मामले में की तरह एक चर के लिए एक विशिष्ट मूल्य के लिए क्वेरी, मैं इसकी अनुशंसा करते हैं क्योंकि यह अन्य लोगों के लिए और अधिक पठनीय है।
मैं यहां कुछ उत्तरों में जोड़ूंगा। यह एक प्रदर्शन प्रश्न नहीं है, और यदि आप वास्तव में प्रदर्शन के बारे में चिंतित हैं ... एक परीक्षा लिखें और देखें कि तेज़ कौन सा है।
हालांकि, यह एक प्रश्न होना चाहिए जिसके बारे में उपयोग करना उचित है, जो बेहतर नहीं है। यदि आपके पास एकाधिक/यदि कथन हैं तो अपने आप को एक पक्ष दें और केस स्टेटमेंट का उपयोग करें। यदि यह आसान है तो/else और फिर if/else का उपयोग करें। आप बाद में धन्यवाद देंगे।
case
या switch
कथन वास्तव में "if .. elseif ..." संरचनाओं के केवल विशेष मामले हैं जिनका उपयोग आप कर सकते हैं जब एक ही ऑब्जेक्ट की तुलना प्रत्येक शाखा में एक अलग साधारण मूल्य से की जा रही है, और यह सब कुछ है किया जा रहा है। उनका उपयोग करने के बारे में अच्छी बात यह है कि अधिकांश कंपाइलर उन्हें कूद तालिकाओं के रूप में कार्यान्वित कर सकते हैं, इसलिए प्रभावी रूप से पूरे 200 (या हालांकि कई) शाखा जांच को एक टेबल इंडेक्सिंग ऑपरेशन के रूप में कार्यान्वित किया जा सकता है, और एक कूद।
कारण है कि, यदि आप एक case
कथन का उपयोग करने के लिए आप
"elseif" की संख्या जितनी अधिक होगी, case
कथन अधिक आकर्षक होगा।
केस स्टेटमेंट आमतौर पर पठनीयता के लिए पसंद किए जाते हैं और यदि कोई गति अंतर होता है तो आमतौर पर तेज़ होते हैं, लेकिन यह हर संभव वातावरण पर लागू नहीं होता है।
आप शायद एक परीक्षण लिख सकते हैं जो दिखाता है कि आपके पर्यावरण के लिए कौन सा तेज़ है, लेकिन कैशिंग और कंपाइलर अनुकूलन से सावधान रहें।
यह बहुत अधिक भाषा-निर्भर स्विच/केस स्टेटमेंट अलग-अलग भाषाओं में अलग-अलग काम करता है - उदाहरण के लिए, कुछ भाषाओं में आप एओएन स्ट्रिंग स्विच कर सकते हैं, अन्य में आप नहीं कर सकते हैं। –