Bảng liệt kê C (enum)
C Enum
Enum là một kiểu đặc biệt đại diện cho một nhóm hằng số (giá trị không thể thay đổi).
Để tạo một enum, hãy sử dụng từ khóa enum
, theo sau là tên của enum và phân tách các mục enum bằng dấu phẩy:
enum Level {
LOW,
MEDIUM,
HIGH
};
Lưu ý rằng mục cuối cùng không cần dấu phẩy.
Không bắt buộc phải sử dụng chữ hoa nhưng thường được coi là cách thực hành tốt.
Enum là viết tắt của "enumerations", có nghĩa là "được liệt kê cụ thể".
Để truy cập enum, bạn phải tạo một biến của nó.
Bên trong phương thức main()
, chỉ định từ khóa enum
, theo sau là tên của enum ( Level
) và sau đó là tên của biến enum ( myVar
trong ví dụ này):
enum Level myVar;
Bây giờ bạn đã tạo một biến enum ( myVar
), bạn có thể gán giá trị cho nó.
Giá trị được gán phải là một trong các mục bên trong enum ( LOW
, MEDIUM
hoặc HIGH
):
enum Level myVar = MEDIUM;
Theo mặc định, mục đầu tiên ( LOW
) có giá trị 0
, mục thứ hai ( MEDIUM
) có giá trị 1
, v.v.
Nếu bây giờ bạn thử in myVar, nó sẽ xuất ra 1
, đại diện cho MEDIUM
:
int main() {
// Create an enum variable and assign a value to it
enum Level myVar
= MEDIUM;
// Print the enum variable
printf("%d", myVar);
return 0;
}
Hãy tự mình thử »Thay đổi giá trị
Như bạn đã biết, mục đầu tiên của enum có giá trị 0. Mục thứ hai có giá trị 1, v.v.
Để hiểu rõ hơn về các giá trị, bạn có thể dễ dàng thay đổi chúng:
enum Level {
LOW = 25,
MEDIUM = 50,
HIGH = 75
};
printf("%d", myVar); // Now outputs 50
Hãy tự mình thử »Lưu ý rằng nếu bạn chỉ định giá trị cho một mục cụ thể thì các mục tiếp theo sẽ cập nhật số tương ứng:
enum Level {
LOW = 5,
MEDIUM, // Now 6
HIGH // Now 7
};
Hãy tự mình thử »Enum trong câu lệnh Switch
Enum thường được sử dụng trong câu lệnh switch để kiểm tra các giá trị tương ứng:
enum Level {
LOW = 1,
MEDIUM,
HIGH
};
int main() {
enum Level myVar = MEDIUM;
switch (myVar) {
case 1:
printf("Low Level");
break;
case 2:
printf("Medium level");
break;
case 3:
printf("High level");
break;
}
return 0;
}
Hãy tự mình thử »Tại sao và khi nào nên sử dụng Enums?
Enum được sử dụng để đặt tên cho các hằng số, giúp mã dễ đọc và bảo trì hơn.
Sử dụng enum khi bạn có các giá trị mà bạn biết sẽ không thay đổi, như ngày trong tháng, ngày, màu sắc, bộ bài, v.v.