C언어의 기초 문법

Switch-Case

정렬 조건문

 이 조건문은 편리성을 위해 만들어진 것이니 생략하시고 넘어가셔도 좋아요;; 조금 어렵습니다;;

switch-case문은 정렬 조건문이라고 볼 수 있어요. 이런 경우를 생각해 보세요

int a;
scanf("%d", &a);
if(a == 0){
    printf("0");
}
else if(a == 1){
    pritnf("1");
}
else if(a == 2){
    printf("2");
}
else if(a == 3){
    printf("3");
}

// ...(a == 10까지 계속 쓴다)...

else {
    printf("default");
}

너무 불편하겠지요? 그래서 switch-case 문이 생긴 것입니다.

int a;
scanf("%d", &a);
switch(a){ // 변수 a를 조사한다
case 1:
    printf("1");
    break;
case 2:
    printf("2");
    break;
// ...(10까지 계속 쓴다)
default:
    printf("default");
}

이렇게 쓰면 a에 대한 조건식을 일일이 다 쓸 필요가 없습니다. switch(a)라고 하면 괄호 안 a라는 변수의 값을 조사한다는 뜻이 되고(굳이 변수가 아니여도 됩니다. 값을 가지고 있는 무엇이든 됩니다), case n: 은 '만약 a가 n일 때'와 같은 의미가 됩니다. 단, case문은 switch 문 안 중괄호의 들여쓰기를 무시합니다. 콜론: 다음 줄에는 명령어를 쓰고, 다 끝났으면 break;를 씁니다. break는 이 switch 문에서 나간다는 뜻이 됩니다. 만약 break를 쓰지 않는다면 계속 switch 문 안에서 끝까지 가겠죠.

그리고 마지만 default는 위에 case 문에 있는 수들이 모두 아니라면 실행됩니다. 이건 맨 마지막이여서 굳이 break를 안 써도 switch문에서 빠져나갑니다.

그냥 if, else if, else문으로 써도 되지만, 알고 있다면 편리한 문법입니다.

댓글

댓글 본문
버전 관리
Joel
현재 버전
선택 버전
graphittie 자세히 보기