Kiểu liệt kê (enum)
Trong bài học ngày, chúng ta sẽ cùng tìm hiểu về từ khóa enum, cách sử dụng, và quan trọng nhất là tại sao chúng ta sử dụng enum trong ngôn ngữ C++.
Enum
Kiểu liệt kê là một trong số các kiểu dữ liệu do người lập trình tự định nghĩa. Tại sao chúng ta cần định nghĩa kiểu dữ liệu mới? Trong quá trình lập trình, những kiểu dữ liệu được định nghĩa sẵn trong ngôn ngữ lập trình có thể không mang lại ý nghĩa phù hợp.
Ví dụ muốn sử dụng các giá trị từ 1 đến 7 để đại diện cho 7 ngày trong tuần (1 đại diện cho ngày chủ nhật, 7 đại diện cho thứ 7), như vậy mình cần ít nhất là 7 biến để lưu trữ các giá trị này:
const int SUNDAY = 1;
const int MONDAY = 2;
const int TUESDAY = 3;
const int WEDNESDAY = 4;
const int THURSDAY = 5;
const int FRIDAY = 6;
const int SATURDAY = 7;không sử dụng mảng một chiều trong trường hợp này vì:
int THE_DAYS_OF_WEEK[7] = { 1, 2, 3, 4, 5, 6, 7 };
Những con số cụ thể không mang lại ý nghĩa cho người đọc mã nguồn chương trình. Việc sử dụng tên của các biến hằng số sẽ giúp chương trình chúng ta rõ ràng hơn.
Nhưng việc khai báo các hằng số như trên vẫn có một số nhược điểm:
Có thể khai báo thiếu sót một vài giá trị khi danh sách các hằng số là quá nhiều.
Có thể khai báo không theo một quy luật (hay thứ tự) nhất định khiến chúng ta khó tìm trong chương trình. Ví dụ:
const int WEDNESDAY = 4;
const int SUNDAY = 1;
const int TUESDAY = 3;
const int FRIDAY = 6;
const int MONDAY = 2;
const int SATURDAY = 7;
const int THURSDAY = 5;Ví dụ sử dụng enum :
int main() {
enum Alphabet
{
GT_A,
GT_B,
GT_C,
GT_D,
GT_E
};
cout << GT_A << endl;
cout << GT_B << endl;
cout << GT_C << endl;
cout << GT_D << endl;
cout << GT_E << endl;
return 0;
}Khi mình chạy chương trình, kết quả xuất hiện trên kết quả là:
