Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ) – CodeCute

cuongth » 3 năm ago
3 năm agoKiểu bool, boolean trong lập trình C / C + + ( Code ví dụ )

(Xem thêm: Tự học lập trình C, C++ qua code ví dụ)

Kiểu dữ liệu boolean, bool là gì?

Kiểu tài liệu Boolean là một kiểu tài liệu có chỉ hoàn toàn có thể nhận một trong hai giá trị như đúng / sai ( true / false, yes / no, 1/0 ) nhằm mục đích đại diện thay mặt cho hai giá trị thật ( truth value ) .
Trong lập trình C kiểu boolean sẽ được gọi là bool ( trong Java thì gọi là boolean, trong Python thì gọi là bool … tùy theo ngôn từ ) .
Ban đầu, ngôn từ C không tương hỗ kiểu bool, mà nó dùng số integer để bộc lộ true / false ( 0 tức là false, khác 0 tức là true ). Bắt đầu từ phiên bản C99 standard for C language thì mới mở màn tương hỗ kiểu bool .
Để sử dụng kiểu bool ta có những cách sau :

Cách 1: Sử dụng thư viện 

Với cách này ta sử dụng kiểu bool của C (với C++ thì mặc định không cần khai báo thư viện  )

Ví dụ :

#include
#include 
 
int main() 
{ 
    bool value = false;
    if (value) { // tương đương với kiểm tra value == true
    	printf("value is true");	
  } else {
    printf("value is false");
  }
    return 0; 
}

Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ)

Cách 2: Tự định nghĩa kiểu bool với enum

enum bool { false, true }; // tương đương với typedef enum { false=0, true=1 } bool;

Ví dụ :

#include
typedef enum { false, true } bool;
 
int main() 
{ 
    bool value = false;
    if (value) { // tuong duong v?i ki?m tra value == true
    	printf("value is true");	
  } else {
    printf("value is false");
  }
    return 0; 
}

Cách 3: Định nghĩa kiểu bool với integer

typedef int bool;
enum { false, true };

Cách 3: Khai báo hằng số true/false

typedef int bool;
#define true 1
#define false 0

Trong những cách trên :

  • Cách 1 chỉ chạy được từ phiên bản C99 standard for C language. Tuy nhiên hầu hết các bản compiler C/C++ đều đã update cho nên các bạn nên dùng cách này.
  • Cách 2,3,4: thì hoạt động giống nhau

Nhìn chung thì kiểu bool vẫn là kiểu integer, nên mặc dầu dùng cách nào thì bạn vẫn hoàn toàn có thể gán bool bằng một giá trị integer bất kể ( 0 tức là false, khác 0 tức là true )

 

References :
https://en.wikipedia.org/wiki/Boolean_data_type
https://stackoverflow.com/…/using-boolean-values-in-c