본문 바로가기
C

C언어 switch / case 사용 방법

by 규우울 2022. 1. 17.
반응형

C언어에는 if문과 비슷한 문법이 있습니다. 그것은 switch ~ case문법입니다. if문은 조건식이 이상, 미만, 초과, 같음 등등 여러 가지 조건을 쓸 수 있지만 switch문은 ==(같음) 밖에 사용하지 못합니다. 그래서 switch문은 if문으로 치환할 수 있지만 if문은 switch문으로 치환하지 못합니다. 그렇다면 전부 if문을 쓰면 되지 왜 switch문 같은 게 있을까요? 첫 번째는 가독성입니다. 밑에 보면 알겠지만 switch문은 if문에 비해 가독성이 좋은 편입니다. 가독성이 좋다는 것은 좋은 코드라는 것이죠. 두 번째 이유는 속도입니다. if문에 비해 switch문은 속도가 조금 더 빠릅니다. 그렇다면 switch문을 사용할 수 있을 때에는 if문으로도 사용 가능하더라도 switch문을 사용하는 게 당연히 좋겠죠??

 

switch문의 사용 방법

switch문을 사용할 때에는 지켜야 할 것이 있습니다. 첫번째는 조건식에는 정수식만 사용 가능합니다. 변수를 사용하던 정수형 상수를 사용하던 상관은 없지만 결과 값은 항상 정수여야 합니다. 조건식뿐만 아니라 case에 사용하는 상수식 또한 정수만 사용 가능합니다. 두 번째는 case 안에 break를 포함해야 합니다. 포함하지 않으면 실행하는 case 밑에 case들까지 전부 차례대로 실행이 됩니다. 하지만 필요에 따라 생략하는 경우도 있으니 상황에 따라 알맞게 사용하길 바랍니다

#include <stdio.h>

int main(void){
    int rank, money;
    rank = 2;
    money = 0;
    switch(rank){
        case 1:
            money = 10000000;
            break;
        case 2:
            money = 5000000;
            break;
        case 3:
            money = 100000;
            break;
        default:
            break;
    }
}

만약 rank의 값이 case에 포함되지 않는다면 default로 가게 되서 바로 break로 빠져나오게 됩니다.

반응형

댓글