यदि आपके पास "लुकअप" प्रकार का कोड है, तो आप स्विच-केस क्लॉज को एक विधि द्वारा पैकेज कर सकते हैं।
मेरे पास "शौक" प्रणाली में इनमें से कुछ हैं जो मैं मनोरंजन के लिए विकसित कर रहा हूं:
private int basePerCapitaIncomeRaw(int tl) {
switch (tl) {
case 0: return 7500;
case 1: return 7800;
case 2: return 8100;
case 3: return 8400;
case 4: return 9600;
case 5: return 13000;
case 6: return 19000;
case 7: return 25000;
case 8: return 31000;
case 9: return 43000;
case 10: return 67000;
case 11: return 97000;
default: return 130000;
}
}
(हां। यह GURPS स्पेस है ...)
मैं दूसरों से सहमत हूं कि आपको ज्यादातर मामलों में एक विधि में एक से अधिक रिटर्न से बचना चाहिए, और मैं यह मानता हूं कि यह एक सरणी या कुछ और के रूप में बेहतर तरीके से लागू किया गया हो सकता है। मुझे बस स्विच-केस-रिटर्न मिला, लुकअप टेबल के लिए इनपुट और आउटपुट के बीच 1-1 सहसंबंध के साथ एक बहुत ही आसान मैच होना चाहिए, जैसे ऊपर की बात (भूमिका-खेल खेल उनमें से भरे हुए हैं, मुझे यकीन है कि वे अन्य में मौजूद हैं "व्यवसायों" के रूप में अच्छी तरह से): डी
दूसरी ओर, यदि केस-क्लॉज़ अधिक जटिल है, या स्विच-स्टेटमेंट के बाद कुछ होता है, तो मैं इसमें रिटर्न का उपयोग करने की सलाह नहीं दूंगा, बल्कि स्विच में एक चर सेट कर सकता हूं, इसे एक ब्रेक के साथ समाप्त कर दूंगा, और वापस आऊंगा अंत में चर का मूल्य।
(तीसरे ... हाथ पर ... आप हमेशा अपने स्वयं के तरीके में एक स्विच को रिफ्लेक्टर कर सकते हैं ... मुझे संदेह है कि इसका प्रदर्शन पर प्रभाव पड़ेगा, और यह मुझे आश्चर्यचकित नहीं करेगा अगर आधुनिक कंपाइलर इसे भी पहचान सकते हैं कुछ है कि इनलेट किया जा सकता है ...)
continue
याgoto
- इसके स्थान पर उनका उपयोग करना मुहावरेदार हैbreak
।