57.3 열거형을 for에 활용하기
열거형을 정의한 뒤 for 반복문에 활용하는 방법도 있습니다. 예를 들어 프로그램에서 일요일부터 토요일까지 매일 반복되는 알람을 설정한다면 열거형과 반복문을 사용하면 편리합니다.
enum_for.c
#include <stdio.h> typedef enum _DayOfWeek { // 열거형 이름은 _DayOfWeek Sunday = 0, // 초깃값을 0으로 할당 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, DayOfWeekCount // 열거형 값의 개수를 나타내는 항목 추가 } DayOfWeek; // typedef를 사용하여 열거형 별칭을 DayOfWeek로 정의 int main() { // 초깃값은 Sunday, i가 DayOfWeekCount보다 작을 때까지만 반복 for (DayOfWeek i = Sunday; i < DayOfWeekCount; i++) { printf("%d\n", i); } return 0; }
실행 결과
0 1 2 3 4 5 6
먼저 다음과 같이 열거형을 정의할 때 초깃값으로 0을 할당합니다. 그리고 열거형 값을 나열하다가 맨 마지막에는 DayOfWeekCount와 같이 열거형 값의 개수를 나타내는 항목을 넣어줍니다(보통 이름을 지을 때 개수 또는 최대치를 뜻하는 Count, _COUNT, Max, _MAX, Maximum 등을 조합합니다).
typedef enum _DayOfWeek { // 열거형 이름은 _DayOfWeek Sunday = 0, // 초깃값을 0으로 할당 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, DayOfWeekCount // 열거형 값의 총 개수를 뜻하는 값 추가 } DayOfWeek; // typedef를 사용하여 열거형 별칭을 DayOfWeek로 정의
for 반복문에서 열거형 별칭으로 변수 i를 선언한 뒤 초깃값으로 Sunday를 넣습니다. 그리고 i가 DayOfWeekCount 보다 작을 때까지만 반복합니다.
// 초깃값은 Sunday, i가 DayOfWeekCount보다 작을 때까지만 반복 for (DayOfWeek i = Sunday; i < DayOfWeekCount; i++) { printf("%d\n", i); }
이렇게 하면 열거형 값 Sunday부터 Saturday까지 반복할 수 있습니다.
지금까지 열거형에 대해 배웠습니다. 열거형은 소스 코드를 알아보기 쉽게 만들어주므로 자주 사용하는 것이 좋습니다. 문법을 눈에 익혀두세요.