본문 바로가기

C++

C++ 배우기 8(enum, Switch)

ENUM

enum ABC
{
a, b, c
};

enumerate의 줄임말로, 열거형이라고 하며, 이것도 자료형이라고 할 수 있다.

정수만 취급하는 특징을 가지고 있다.

선언 방식은 기존의 변수 선언방식과 비슷하다고 보면 된다.(type callname 형식)

 

enum의 선언방식

위와 같이 안에 각각 변수를 만들었다. 값을 넣어주지 않아도 앞에서부터 차례대로 0, 1, 2, 3 순의 정수가 들어가게 된다.

 

중간에 다른 값을 정의함

위 사진과 같이 중간에 특정값을 대입하면, 처음 a, b에는 0, 1이 들어가다 c, d는 15, 16 순으로 정수가 들어간다.

즉, 중간에 특정값을 대입하면 그 뒤로는 특정값의 증감한 값들이 차례대로 들어간다.

이러한 성질을 잘 기억하고 나중에 사용할 때 유의하면 되겠다.


Switch

switch(특정값)
{
case 특정값:
	break;
case 2:
	//break;
default:
	break;
}

선언방식은 위와 같은 방법으로 하면 된다. switch옆에 특정값이 들어오면, 그 값과 같은 case들을 실행시키는 역할이다.

저기서 default는 if문의 else와 같은 역할로, 해당하는 특정값이 없을 때 출력되는 것이다.

보통 특정값이 걸리는 case부터 제일 마지막 default까지 전부 실행시키는 특징을 가지고 있어서, 이를 막기 위해

각 case마다 break;를 넣어주어야 한다.


enum과 switch의 연계

위 사진과 같이 enum을 이용하여 swtich를 작동시킬 수도 있다. 변수 a에 UP을 대입 키면,

enum DIR 안의 UP = 2의 정수 값이 변수 a에 정의된다.

따라서 switch에 a의 값을 넣었을 때, case UP = 2 이므로 그 부분이 실행이 돼서 2가 출력되고

break 지시자를 통해 switch문을 빠져나오는 실행 과정을 나타낸다.