विभिन्न केस निकायों को स्वचालित रूप से अपने दायरे में क्यों नहीं हैं? उदाहरण के लिए, यह करने के लिए अगर मैं थे:अलग-अलग केस कंडीशन बॉडी अलग-अलग दायरे में क्यों नहीं हैं?
switch(condition) {
case CONDITION_ONE:
int account = 27373;
case CONDITION_TWO:
// account var not needed here
case CONDITION_THREE:
// account var not needed here
case CONDITION_FOUR:
int account = 90384;
}
संकलक स्थानीय चर redefinitions के बारे में शिकायत करेंगे। मैं समझता हूँ कि मैं यह कर सकता है:
switch(condition) {
case CONDITION_ONE: {
int account = 27373;
}
case CONDITION_TWO: {
// account var not needed here
}
case CONDITION_THREE: {
// account var not needed here
}
case CONDITION_FOUR: {
int account = 90384;
}
}
बयानों के प्रत्येक सेट के चारों ओर एक ब्लॉक डाल करने के लिए अपने स्वयं के दायरे में प्रत्येक account
चर डाल करने के लिए निष्पादित किया जाना है। लेकिन भाषा मेरे लिए ऐसा क्यों नहीं करती है?
आप कभी भी CONDITION_ONE
के शरीर में स्थानीय चर घोषित करना चाहते हैं और फिर इसे CONDITION_TWO
में उपयोग करें? यह एक गंभीर विचार की तरह लगता है जिसे स्पष्ट रूप से प्रतिबंधित नहीं किया जाना चाहिए, स्पष्ट रूप से अनुमति नहीं है।
** क्योंकि [वह] (http: //en.wikipedia।संगठन/विकी/जेम्स_गोस्लिंग "जेम्स गोस्लिंग") ने कहा !! ** * (मेरा नया पसंदीदा उत्तर) * – jjnguy
यह एक शापित अच्छा सवाल है; मुझे कल वही निराशा का सामना करना पड़ा। –
अधिक स्पष्ट रूप से: आप कभी भी स्विच में स्थानीय चर घोषित क्यों करना चाहते हैं? उन्हें कम इस्तेमाल करें; एक मामले में नियंत्रण तर्क डालने एक भ्रमित कार्यक्रम के लिए एक नुस्खा है! –