[23일차](홍정모의따배c)다중선택 switch와 break
*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시
안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.
정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고
제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소
생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면
'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.
- 교수님코드
#include <stdio.h>
int main()
{
char c;
while ((c = getchar()) != '.')
{
printf("You love ");
switch (c)
{
case 'a':
printf("apple");
break;
case 'b':
printf("baseball");
break;
case 'c':
printf("cake");
break;
default:
printf("Nothing");
}
printf(". \n");
while ((getchar()) != '\n')
continue;
}
return 0;
}
switch문의 역활은
특정 case에 해당하는 곳을 입력하면
그 case문에 해당하는 값을 찾아간다.
위 코드는
찾아가서 바로 break를 걸고 빠져나온다.
그 밑에 while문은 엔터를 이용해 줄바꿈하는동안 continue를 이용해 입력을 계속 받으라는 코드다.
첫글자 말고는 무시한다는 말이다.
따라서 실행을 멈추려면 맨위에 while문을 보다시피 '.'을 입력해야한다.
break를 싹다 주석처리한다면 어떻게될까?
apple 쪽 case문만 주석처리 했을때
apple baseball 쪽 둘만 주석처리 했을때
그렇다면
대문자도 입력받을 때 각 케이스를 받고싶다면?
- 교수님코드
#include <stdio.h>
int main()
{
char c;
while ((c = getchar()) != '.')
{
printf("You love ");
switch (c)
{
case 'a':
case 'A':
printf("apple");
break;
case 'b':
case 'B':
printf("baseball");
break;
case 'c':
case 'C':
printf("cake");
break;
default:
printf("Nothing");
}
printf(". \n");
while ((getchar()) != '\n')
continue;
}
return 0;
}
각 케이스에 대문자케이스도 추가해주면된다.