C++/Syntax 2021. 3. 11. 16:28

switch

  • switch문 내부에서 중괄호 없이 변수 선언은 가능하지만, 초기화는 안된다.

    • 중괄호가 없으면 변수의 scope는 switch문의 중괄호까지인데, 서로 다른 case에서 변수에 접근은 가능하지만 초기화가 안된 상태로 접근할 수 있기 때문이다.

    • 특별한 상황이 아니라면 이렇게 사용하는 것은 별로 추천하는 방법은 아니다.

    • MS 에러 코드

    #include <iostream>
    
    int main()
    {
        using namespace std;
    
        int x;
        cin >> x;
    
        switch (x)
        {
            int a;          // 이건 가능
            int b = 5;      // Error: initialization of 'b' is skipped by 'case' label
    
        case 0:
            int c;          // 이것도 가능
            int d = 5;      // 이건 안됨
            {               // 굳이 써야되면 이런 식으로 작성
              int e = 5;
              cout << e << endl;
            }
            a = 1;
            cout << a << endl;
        }
    }

'C++ > Syntax' 카테고리의 다른 글

C++ 배열 (Array)  (0) 2021.03.11
C++ 반복문  (0) 2021.03.11
C++ 제어 흐름 (Control Flow)  (0) 2021.03.11
C++ Type Alias  (0) 2021.03.11
C++ 열거형 (Enumerate Type)  (0) 2021.03.10