(मैंने "अन्यथा रेंज" की खोज की लेकिन मेरे प्रश्न का उत्तर देने वाली किसी भी पोस्ट के साथ नहीं आया)।क्या यह स्पष्ट रूप से राज्य सीमाओं के लिए हानिकारक है यदि अन्यथा बयानों में?
अगर .. elseif .. किसी और कुछ (परस्पर अनन्य) पर्वतमाला में एक चर जा रहा है के आधार पर क्या करना है का चयन करने के का उपयोग करते समय, मैं स्पष्ट रूप से पर्वतमाला का उल्लेख करना चाहते:
int num = 55;
String message;
if (num >= 20) {
// update message variable
message = "Bigger or equal to than 20";
}
else if (10 <= num && num < 20) {
// update message variable
}
else if (0 <= num && num < 10) {
// update message variable
}
else if (num < 0) {
// update message variable
}
System.out.println(message);
लेकिन सभी पाठ्यपुस्तकों और व्याख्यान नोट्स मैं देख रहा हूँ इस तरह इस तरह के एक उदाहरण के बारे में:
int num = 55;
String message;
if (num >= 20) {
// update message variable
message = "Bigger or equal to than 20";
}
else if (num >= 10) {
// update message variable
}
else if (num >= 0) {
// update message variable
}
else {
// update message variable
}
System.out.println(message);
मुझे समझ में क्यों वे अंत में एक और को उपयोग सुनिश्चित करें (यानी यह सोच कर कि संदेश की तरह एक चर प्रारंभ नहीं हो सकता से जावा कम्पाइलर को रोकने के लिए, यदि वह चर एक आदिम था), लेकिन यह सब दिया गया पाठ्यपुस्तक और व्याख्यान नोट्स अन्य शैली दिखाते हैं, क्या मुझे अन्य सभी स्थितियों के लिए सीमाओं को स्पष्ट रूप से लिखने के कारण कोई समस्या है, जैसा कि मुझे करना है?
मैं रिफैक्टरिंग भाग से असहमत: पहला संस्करण भी बहुत त्रुटियों पुनर्रचना क्योंकि आप सुनिश्चित करें कि प्रत्येक रेंज की ऊपरी सीमा वास्तव में अगले एक की निचली सीमा है करना है की संभावना है। –
मुझे लगता है कि चिंता का विषय है [एंडी थॉमस द्वारा जवाब] में उठाया (http://stackoverflow.com/a/40183548/5221149) बयान के अगर-elseif-elseif अनुक्रम उलटफेर किसी की तुलना में एक अधिक यथार्थवादी चिंता का विषय है। कुछ भी साकार 'कि else' बिना निर्माण उस तरह का उलटफेर करने के लिए पर्याप्त गूंगा पर' if' लागू किया जाना चाहिए निर्भर करता है। – Andreas