switch문
switch문은 사용자가 선택해서 원하는 방향으로 코드를 실행할 수 있습니다. (선택적 실행)
어느 특정 범위가 아닌 값이 정해져있다면 if문보다 깔끔할 수 있습니다.
사용방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | switch(변수) { case 1: //실행영역 break; case 2: //실행영역 break; case 3: //실행영역 break; case 4: //실행영역 break; case 5: //실행영역 break; default: //실행영역 } |
보통 변수타입은 int형이 쓰이고,변수값에따라 케이스 레이블 에맞는 코드를 실행합니다.
변수값이 1이라면 case 1의 실행영역을 실행합니다.
case 1,2,3,4,5 이런식으로 있는데 이런걸 레이블(label)이라고 합니다.
default 레이블은 변수값과 일치하는 레이블이 없을때 실행됩니다.
만약 break;을 안쓰면 해당 레이블에서 아래에있는 코드를 break만날때 까지 쭉실행합니다.
만약 m,M을 입력해도 Morning 이라는 문자열을 출력하고싶다면 아래의 예제를 참고하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> int main(void) { int num1; scanf("%d",&num1); switch(num1) { case M: case m: printf("morning \n"); break; case 3: break; case 4: break; case 5: break; default: } } |
결국은 break문은 선택적으로 적절하게 잘써야합니다.(필요에 따라)
if~else문을 써도 가능한거지만 분기가 많을수록 switch문을 사용할려고 노력해야합니다.
switch문으로 표현하기 애매한 상황에서는 if~else문을 사용해야합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main(void) { int num1; scanf("%d",&num1); if(num1 >= 0 && < 10){ printf("0과 10사이의 숫자입니다.") } else{ printf("0과 10사이의 숫자가 아닙니다.") } } |
(2번예제)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> int main(void) { int num1; scanf("%d",&num1); switch(num1) { case ?: break; case ?: break; case ?: break; case ?: break; case ?: break; default: } } |
(3번예제)
2번예제처럼 switch문으로 사용할려면 애매합니다. 이럴때는 if문을 사용해야 합니다.
댓글