Tuesday, April 26, 2011

Enum và ứng dụng

Enum

Ở giảng đường Đại học tôi rất hiếm khi nghe người ta nhắc đến Enum, trái lại, trong hầu hết các dự án C/C++ mà tôi đã từng thực hiện lại luôn luôn có sự xuất hiện của Enum.
Vậy Enum là gì? Enum là viết tắt của Enumerated type (kiểu liệt kê), tôi sẽ định nghĩa enum bằng hai chú ý như sau:
  • Enum cho phép bạn tạo ra một kiểu dữ liệu mới.
  • Kiểu dữ liệu mới đó chỉ có thể có những giá trị hữu hạn do bạn đã liệt kê sẵn trước đó. 
Hình 1: Khai báo và sử dụng enum
Muốn tạo ra một kiểu dữ liệu mới theo các này bạn phải bắt đầu bằng từ khóa enum theo sau là tên kiểu giữ liệu mà bạn muốn tạo, tiếp theo là danh sách các giá trị có thể có đặt trong giấu {}. 

Với khai báo như Hình 1 chúng ta đã tạo ra một kiểu dữ liệu mới có tên là thoi_tiet và kiểu dữ liệu này chỉ có thể nhận hai giá trị là nang hoặc mua. 

Enum và Switch-case

Bạn đăng thắc mắc về hình ảnh song kiếm tôi đặt ở đầu bài viết? Đó là vì tôi muốn ám chỉ đến sự kết hợp giữa enum và câu lệnh switch sẽ tạo ra hiệu ứng tuyệt vời giống như hình ảnh song kiếm vậy

Theo thời gian độ phức tạp của các chương trình C/C++ cũng tăng lên, do đó "tính rõ ràng" trong cách tổ chức chương trình luôn là một trong những vấn đề được ưu tiên, việc kết hợp enum và switch là một trong những cách làm phổ biến để tăng "tính rõ ràng" của chương trình.

"nếu ngày mai trời nắng tôi sẽ đi câu, còn nếu trời mưa tôi sẽ ở nhà nằm ngủ", tôi sẽ kết hợp switch và enum để mô tả lại câu nói này một cách rất là tự nhiên như sau:
Hình 2: kết hợp enum và switch
Bạn hoàn toàn có thể sử dụng if-else để giải quyết tương tự, nhưng ưu điểm tối thượng của kết hợp này là bạn không cần sử dụng điều kiện so sánh, việc hạn chế sử dụng biểu thức điều kiện sẽ giúp tối ưu hiệu suất chương trình và hạn chế lỗi.

Cuối cùng hãy nhớ rằng phải sử dụng trình biên dịch C++ nếu muốn sử dụng enum. Chúc buổi tối vui vẻ!

No comments:

Post a Comment