मेरे पास एक लंबा स्विच-केस स्टेटमेंट है। कुछ मामलों में वास्तव में छोटे और तुच्छ हैं। कुछ लंबे समय तक इस तरह कर रहे हैं और कुछ चर कि कहीं और इस्तेमाल कभी नहीं कर रहे हैं की जरूरत है,:क्या स्विच स्टेटमेंट के मामले में स्थानीय ब्लॉक में एक चर को परिभाषित करना एक अच्छा विचार है?
int specialVariable = 5;
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction:
// Do something complex with specialVariable
break;
}
यह कर सकते हैं:
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction: {
int specialVariable = 5;
// Do something complex with specialVariable
} break;
}
विकल्प switch
इस तरह में जाने से पहले उस चर घोषित करने के लिए किया जाएगा बल्कि भ्रमित हो जाएं क्योंकि यह स्पष्ट नहीं है कि case
वेरिएबल संबंधित है और यह कुछ अनावश्यक स्मृति का उपयोग करता है।
हालांकि, मैं इस प्रयोग कहीं और कभी नहीं देखा है।
क्या आपको लगता है कि एक ब्लॉक में स्थानीय रूप से एक case
के लिए चर घोषित करना एक अच्छा विचार है?
क्या प्रत्येक मामले का दायरा है? मैं पूछता हूं क्योंकि एक केस के बिना स्विच के कोई मतलब नहीं है, निश्चित रूप से? – gbn
@gbn - स्वयं ही, एक 'केस' एक नया दायरा नहीं बनाता है।कोड को नए दायरे को पेश करने के लिए '{}' जोड़ने की आवश्यकता होगी (जैसा कि ओपी अपने पहले उदाहरण में करता है)। –
हां, यदि आप मामले (पन) में चर का उपयोग करने का इरादा रखते हैं तो आपको "स्कोप" बनाना होगा जहां चर केवल उस मामले में उपयोग किया जाएगा। – Max