Enumeration (enum) trong C

Enumeration (enum) trong C là gì? Cách dùng Enum trong C như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Enum trong C

Enum trong C là gì?

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 trong C, dùng từ khóa enum, theo sau là tên của enum và tách riêng 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. Bạn không cần phải viết hoa nhưng việc đó thường được khuyến khích.

Enum là từ viết tắt cho enumeration. Nó có nghĩa là “liệt kê cụ thể”.

Để truy cập enum, bạn phải tạo một biến cho nó. Bên trong phương thức main(), chỉ định từ khóa enum, theo sau là tên của emum (Level), rồi tên của biến enum (myVar) trong ví dụ này):

enum Level myVar;

Giờ bạn đã tạo một biến enum (myVar), bạn có thể gắn cho nó một giá trị.

Giá trị được gắn phải là một trong số các mục bên trong emum (LOW, MEDIUM hoặc HIGH):

enum Level myVar = MEDIUM;

Mặc định, mục đầu tiên (LOW) có giá trị 0, thứ hai (MEDIUM) có giá trị 1

Giờ nếu bạn thử in myVar, nó sẽ cho kết quả 1, đại diện cho MEDIUM:

#include <stdio.h>

enum Level {
  LOW,
  MEDIUM,
  HIGH
};
  
int main() {
  // Tạo một biến enum và gắn cho nó một giá trị
  enum Level myVar = MEDIUM;
 
  // Print biến enum
  printf("%d", myVar);
  
  return 0;
}

Thay đổi các 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…

Để làm giá trị có ý nghĩa hơn, bạn có thể dễ dàng thay đổi chúng:

#include <stdio.h>

enum Level {
  LOW = 25,
  MEDIUM = 50,
  HIGH = 75
};
  
int main() {
  enum Level myVar = MEDIUM;
  printf("%d", myVar);
  
  return 0;
}

Lưu ý rằng nếu gắn một giá trị cho một mục nào đó, mục tiếp theo sẽ cập nhật số tương ứng:

enum Level {
  LOW = 5,
  MEDIUM, // Now 6
  HIGH // Now 7
};

Enum trong một lệnh Switch

Enum thường được dùng trong 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;
}

Tại sao và khi nào dùng Enum trong C?

  • Enum trong C được dùng để đặt tên cho các hằng số. Điều đó khiến việc đọc và duy trì code dễ hơn.
  • Dùng enum trong C khi bạn có giá trị không thay đổi như ngày, màu sắc, bộ thẻ…
Thứ Năm, 12/01/2023 14:19
51 👨 876
0 Bình luận
Sắp xếp theo
    ❖ Lập trình C