프로그래밍 일반/C++ 프로그래밍

[C++] 유용한 C++ 기능 - if / switch init statement

지노윈 2024. 1. 17. 21:01
반응형

if / switch init statement

로컬 변수의 생명주기가 블럭과 같도록 합니다.

if 문 이후에 x 변수가 잘못 사용되는 위험을 방지하고 코드의 의도를 명확히 합니다.

if (int x = getX(); x > 0) {
    // x가 0보다 큰 경우에 실행되는 코드
    // x를 여기서 사용할 수 있음
} else {
    // x가 0 이하인 경우에 실행되는 코드
}

위의 예제에서 getX() 함수는 변수 x를 초기화하는데 사용됩니다. 이렇게 하면 if 블록 내에서만 x가 유효하게 됩니다.

 

다음은 switch에서 사용하는 예시입니다.

switch (int value = getValue(); value) {
    case 1:
        // value가 1인 경우에 실행되는 코드
        break;
    case 2:
        // value가 2인 경우에 실행되는 코드
        break;
    default:
        // 위의 case에 해당하지 않는 경우에 실행되는 코드
        break;
}

 

switch 문에서도 비슷한 방식으로 초기화 구문을 사용할 수 있습니다. getValue() 함수가 반환한 값으로 value 변수를 초기화하며, 각 case에서 value 값을 비교합니다.

이렇게 초기화 구문을 사용하면 변수의 범위(scope)를 더욱 지역화할 수 있고, 코드의 가독성을 향상시킬 수 있습니다. 다만, 이 기능을 사용할 때에는 해당 변수가 if 블록이나 switch 문의 바깥에서 사용되지 않도록 주의해야 합니다.