컴퓨터를 공부하고자 마음먹은지 N일차

[23일차](홍정모의따배c)다중선택 switch와 break 본문

🖥C

[23일차](홍정모의따배c)다중선택 switch와 break

졸린새 2020. 9. 30. 16:31
728x90

[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;
}

각 케이스에 대문자케이스도 추가해주면된다.

Comments