जावा में, एक ब्लॉक ब्लॉक के विपरीत एक स्विच ब्लॉक तक सीमित एक चर का दायरा क्यों है। उदाहरण के लिए,जावा में स्विच स्टेटमेंट का दायरा क्यों सीमित नहीं है?
// Scope limited to a switch block
switch (number) {
case 1:
String result = "...";
break;
case 2:
result = "...";
break;
उपरोक्त उदाहरण में, परिणाम केवल एक बार घोषित करने की आवश्यकता है। यदि आप इसे दो बार घोषित करते हैं तो आपको Duplicate local variable
संदेश प्राप्त होता है।
मेरा प्रश्न है: प्रोग्राम को पता है कि result
अगर number = 2
घोषित किया गया है? (यह case 1
में आते हैं नहीं और चर की घोषणा नहीं करेगा ... या होगा यह?)
संपादित करें:
मैं हर किसी को भ्रमित किया जा सकता है। मैं समझता हूं कि मैं एक चर के दायरे को कैसे सीमित कर सकता हूं लेकिन मेरा प्रश्न है: जावा कैसे जानता है कि परिणाम घोषित किया गया है यदि यह मामले में नहीं आता है?
[जावा स्विच: परिवर्तनीय घोषणा और दायरा] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/10932997/java-switch-variable-declaration-and-scope) –
यह एक डुप्लिकेट है, धन्यवाद - मैं ' हटा देंगे संपादित करें: हटा नहीं सकता - ध्वजांकित होगा। – sdasdadas
मेरा जवाब संपादित किया गया। मतदान करने के लिए मतदान करके भी आपकी सहायता की :-) –