C언어(2020년)

10. switch case 문

리더2333 2020. 11. 2. 15:58
반응형

다음의 예제를 보자

#include <stdio.h>
#include <conio.h> // for _getch()
#include <ctype.h> // for tolower();

int main()
{
	char code = (char)_getch();
	code = (char)tolower(code);

	switch (code)
	{
	case 'a':
		printf("A키를 누르셨군요\n");
		break;
	case 'b':
		printf("B키를 누르셨군요\n");
		break;
	case 'c':
		printf("C키를 누르셨군요\n");
		break;
	case 'd':
		printf("D키를 누르셨군요\n");
		break;
	case '1':
		printf("1키를 누르셨군요\n");
		break;
	case '2':
		printf("2키를 누르셨군요\n");
		break;
	case '3':
		printf("3키를 누르셨군요\n");
		break;
	case 0x0D:
		printf("Enter키를 누르셨군요\n");
		break;
	case 0x1B:
		printf("ESC키를 누르셨군요\n");
		break;
	default:
		printf("그밖의 키...\n");
		break;
	}

	return 0;
}

char code = (char)_getch();

키보드를 입력받아 ASCII코드 값을 받아 온다.

 

code = (char)tolower(code);

받은 아스키 코드가 알파벳 대문자이면 소문자로 변경한다.

 

switch(code)   (코드가)

{

case 'a':         ('a' 이면)

    printf("A키를 누르셨군요\n");      (이런 메시지를 출력한다)

    break;                                     (break; 로 블럭을 벗어난다)

case 'b':         ('b' 이면)

    printf("B키를 누르셨군요\n");      (이런 메시지를 출력한다)

    break;                                     (break; 로 블럭을 벗어난다)

.....(생략)......

default:          (모두 아니라면)

    printf("그밖의 키...\n");              (이런 메시지를 출력한다)

    break;                                    (break; 로 블럭을 벗어난다)        

}

 

※ 주의) break; 를 쓰지 않으면, 블럭을 벗어나지 않는다.

위 코드에서 break; 를 빼고, 키보드에서 c 키를 눌렀을 때 어떻게 출력하는지

왜 그런지 생각해보자. (또한 d 키를 눌렀을 때와 어떻게 다른지 확인해보자)

반응형

'C언어(2020년)' 카테고리의 다른 글

12. do while 문  (0) 2020.11.02
11. while 문  (0) 2020.11.02
9. ASCII 코드  (0) 2020.11.02
8. if else 문  (0) 2020.11.02
7. if 문  (0) 2020.11.02