개인 공부/c++
Enum
Sanyo
2024. 6. 5. 15:20
Enum. 열거형이라고 부른다. Enum에 익숙해지면 코드의 가독성을 매우 높일 수 있다.
c++ 에서의 enum은 매우 단순한 형태로 이루어져 있다.
- enum { contant_name1, Constant_name2. …, Contant_namen };
바로 예시를 살펴보자.
#include <iostream>
int main(int argc, char *argv[])
{
enum WEEK
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
WEEK day1 = Monday;
WEEK day2 = Sunday;
std::cout << "day1 = " << day1 << "\n";
std::cout << "day2 = " << day2 << "\n";
return 0;
}
위 코드에서는 WEEK라는 열거형을 만들고 사용했다. 위 코드의 실행 결과는 어떻게 될까?
분명 그냥 Monday, Tuesday이런 식으로 저장했는데, 이게 문자열로 출력되지는 않을 것 같고... 어떻게 출력될까?
저 코드의 출력 결과는
day1 = 0
day2 = 6
이 된다.
enum의 값은 int타입일까?
그건 아니다. 정수형으로 취급되지만 int로 분류하지는 않는다. 대부분은 저 0과 1의 값을 직접 프로그래머가 출력할 일은 많지 않다.
그 대신 enum을 사용해서 조건문 등을 작성한다.
#include <iostream>
int main(int argc, char *argv[])
{
enum WEEK
{
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
int day;
std::cin >> day;
switch (day)
{
case Tuesday:
case Thursday:
std::cout << "c++ Programming"
<< "\n";
break;
default:
std::cout << "free"
<< "\n";
}
return 0;
}
다음과 같이 Enum의 값을 사용해서 분류하게 된다.
case 0, case 1 등으로 분류하는 것보다 코드의 가독성이 훨씬 좋아진다.