जब तक मुझे याद है मैं स्विच स्टेटमेंट फॉल-थ्रू का उपयोग करने से बचता हूं। वास्तव में, मैं इसे कभी भी अपनी चेतना में प्रवेश नहीं कर सकता कि चीजों को करने का एक संभव तरीका है क्योंकि यह मेरे सिर में जल्दी ही ड्रिल किया गया था कि यह स्विच स्टेटमेंट में बग से ज्यादा कुछ नहीं था। हालाँकि, आज मैं कुछ ऐसे कोड भर गया, जो इसे डिज़ाइन द्वारा उपयोग करता है, जिसने मुझे तुरंत आश्चर्य में डाल दिया कि समुदाय में हर कोई स्विच स्टेटमेंट फ़ॉल-थ्रू के बारे में क्या सोचता है।
क्या यह कुछ ऐसा है जिसे प्रोग्रामिंग भाषा को स्पष्ट रूप से अनुमति नहीं देनी चाहिए (जैसे C # करता है, हालांकि यह वर्कअराउंड की आपूर्ति करता है) या क्या यह किसी भी भाषा की विशेषता है जो प्रोग्रामर के हाथों में छोड़ने के लिए पर्याप्त शक्तिशाली है?
संपादित करें: मैं इस बात से विशिष्ट नहीं था कि मेरा मतलब क्या है। मैं इस प्रकार का बहुत उपयोग करता हूं:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
हालाँकि, मैं कुछ इस तरह के बारे में चिंतित हूँ।
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something, but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
इस तरह जब भी मामला 0 है, 1 यह स्विच स्टेटमेंट में सब कुछ करेगा। मैंने इसे डिजाइन द्वारा देखा है और मुझे नहीं पता कि क्या मैं सहमत हूं कि स्विच स्टेटमेंट का इस तरह से उपयोग किया जाना चाहिए। मुझे लगता है कि पहला कोड उदाहरण एक बहुत ही उपयोगी और सुरक्षित है। दूसरी तरह की खतरनाक लगती है।