조건문 switch
switch란?
case문에 적혀진 값과 같을때 그 위치 부터 코드를 실행한다.
switch(value)
{
case 1:
1
case 2:
2
case 3:
3
default:
4
}
value값이 1이면 1->2->3->4순서로 실행된다.
value값이 2이면 2->3->4순서로 실행된다.
value값이 3이면 3->4순서로 실행된다.
모두 아닐경우 4가 실행된다.(if문의 else와 비슷하다고 보면된다.)
case문 마지막에 break를 넣으면 다음 순서의 코드를 실행하지 않고 switch문을 빠져나온다.
switch(value)
{
case 1:
1
break;
case 2:
2
break;
case 3:
3
break;
default:
4
break;
}
value값이 1이면 1이 실행된다.
value값이 2이면 2가 실행된다.
value값이 3이면 3이 실행된다.
모두 아닐경우 4가 실행된다.
if(A>B)
{
1
}
else if(A<B)
{
2
}
else
{
4
}
A>B일경우 1이 실행, A<B일 경우 2가 실행, A=B일 경우 4가 실행된다.
else는 위의 모든 조건이 거짓일때 실행된다.
#include <stdio.h>
int main()
{
int num1, num2;
int select;
int result;
printf("1. 더하기\n");
printf("2. 빼기\n");
printf("3. 곱하기\n");
printf("4. 나누기\n");
printf("입력 : ");
scanf("%d", &select);
printf("두 수를 입력하시오\n");
printf("입력 : ");
scanf("%d %d", &num1, &num2);
switch(select)
{
case 1:
result = num1 + num2;
break;
case 2:
result = num1 - num2;
break;
case 3:
result = num1 * num2;
break;
case 4:
result = num1 / num2;
break;
default:
printf("메뉴를 잘못 입력하셨습니다.");
}
printf("\n\n");
printf("결과 = %d\n", result);
return 0;
}
① int num1, num2, select, result;
☞ 변수 num1, num2는 숫자 저장을, select는 계산메뉴 선택을, result는 계산결과 값을 저장하기위해 선언했다.
② switch(select)
☞ 변수 select값으로 switch문을 실행시킨다.
③ case 3:
☞ 변수 select의 값이 3일때 실행한다.
④ break;
☞ break를 넣지 않으면 select의 값이 3이든 2이든 나눗셈을 하게되며 메뉴를 잘못 입력하셨습니다 라는 출력문이 나온다.
⑤ default:
☞ 위의 case들이 모두 불일치 할때 실행되며 메뉴를 잘못 입력하셨습니다 라는 출력문이 나온다.
#include <stdio.h>
int main()
{
int num;
int result;
printf("값을 입력해주십시오.\n");
printf("입력 : ");
scanf("%d", &num);
result = num % 2;
switch(result)
{
case 0:
printf("짝수 입니다.\n");
break;
case 1:
printf("홀수 입니다.\n");
break;
}
return 0;
}
#include <stdio.h>
int main()
{
int num;
printf("값을 입력해주십시오(0~9).\n");
printf("입력 : ");
scanf("%d", &num);
switch(num)
{
case 0:
case 1:
case 2:
case 3:
case 4:
printf("0~4를 입력하셨습니다.\n");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
printf("5~9를 입력하셨습니다.\n");
break;
default:
printf("범위를 초과하였습니다.\n");
}
return 0;
}
※break를 안쓰면 이렇게 응용이 가능하다.(이 예제는 비효율적이다.)
연습문제
1) 0~99를 입력했을때 십의 자리가 무엇인지 알아내는 프로그램을 작성하시오.