Avatar ·

C++ में switch ब्लॉक के अंदर बिना curly braces के वेरिएबल क्यों घोषित नहीं कर सकते?

सभी को नमस्ते! मैंने C++ सीखना शुरू किया है और switch का उपयोग करते समय एक बहुत अजीब त्रुटि का सामना किया। मुझे एक सरल कैलकुलेटर लिखना था जो इनपुट किए गए कैरेक्टर के आधार पर विभिन्न ऑपरेशन करे। यहाँ मेरा कोड है: ```cpp #include using namespace std; int main() { char op; int a = 10, b = 5; cout << "Enter operation (+, -, *, /): "; cin >> op; switch (op) { case '+': int result = a + b; // त्रुटि! cout << result; break; case '-': // ... break; } return 0; } ``` कंपाइलर त्रुटि देता है: "cannot jump from switch statement to this case label" या कुछ इस तरह "initialization of 'result' is skipped by 'case' label"। मैं समझता हूँ कि switch goto की तरह काम करता है और सही लेबल पर कूदता है, लेकिन case के अंदर सीधे वेरिएबल क्यों घोषित नहीं कर सकते? आखिर मैं इसे कोलन के बाद, अगले break से पहले लिख रहा हूँ। इसमें समस्या क्या है और सही तरीके से कैसे घोषित करें?

अभी तक कोई उत्तर नहीं।

लॉग इन करें उत्तर देने के लिए

ब्लॉग