이 조건문은 편리성을 위해 만들어진 것이니 생략하시고 넘어가셔도 좋아요;; 조금 어렵습니다;;
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문으로 써도 되지만, 알고 있다면 편리한 문법입니다.