इसलिए मैंने आज एक विधि लिखी है जिसमें नेस्टेड स्विच स्टेटमेंट्स का उपयोग शामिल है, और कोड मेरे लिए काफी साफ और संक्षिप्त दिखता है, लेकिन मुझे बताया गया कि नेस्टेड स्विच स्टेटमेंट आमतौर पर सबसे अच्छा तरीका नहीं है जाने के लिए क्योंकि वे आपके द्वारा जोड़े गए अधिक स्विच स्टेटमेंट्स के साथ भ्रमित हो सकते हैं।जावा में नेस्टेड स्विच स्टेटमेंट्स के लिए वैकल्पिक
EnumOne enumOne;
EnumTwo enumTwo = null;
EnumTwo enumThree = null;
switch (enumOne) {
case CASE_ONE:
switch (enumTwo){
case A: enumTwo = EnumTwo.B; break;
case C: enumTwo = EnumTwo.D; break;
default: break;
}
switch (enumThree) {
case AA: enumThree = EnumTwo.BB; break;
case CC: enumThree = EnumTwo.DD; break;
default: break;
}
break;
case CASE_TWO:
case CASE_THREE:
switch(EnumTwo) {
default: break;
}
switch (enumThree) {
case AA: enumThree = EnumTwo.XX; break;
case CC: enumThree = EnumTwo.YY; break;
default: break;
}
break;
default:
break;
}
तो मेरे सवाल हो, अनिवार्य रूप से, क्या इन बयानों स्विच करने के लिए एक उपयुक्त विकल्प होगा होगा: यहाँ क्या मेरी कोड की तरह दिखाई देता का एक नमूना है?
इसके लिए आप इसका क्या उपयोग कर रहे हैं? एक राज्य मशीन मॉडल करने के लिए? – flup
तो enumTwo अपने मूल्य को enum के एक, दो और तीन के मूल्य पर निर्भर करता है? EnumTwo में कोई तरीका क्यों नहीं है जो नया मान देता है? एक राज्य पैटर्न के समान। –
घोंसले स्विच/यदि कथन के बहुत सारे उपयोग आमतौर पर डिज़ाइन त्रुटियों को दिखाते हैं, विशेष रूप से यदि आप ओओ भाषाओं में ऐसा कर रहे हैं, तो आपको उन पर उपलब्ध सुविधाओं का उपयोग करना चाहिए। – gersonZaragocin