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

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

Kiể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 dữ liệu Boolean là một kiểu dữ liệu có chỉ có thể nhận một trong hai giá trị như đúng/sai (true/false, yes/no, 1/0) nhằm đại diện 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 ngữ).

Ban đầu, ngôn ngữ C không hỗ trợ kiểu bool, mà nó dùng số integer để biểu thị 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 bắt đầu hỗ trợ kiểu bool.

Để sử dụng kiểu bool ta có các cách sau:

Cách 1: Sử dụng thư viện <stdbool.h>

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 <stdbool.h> )

Ví dụ:

#include<stdio.h>
#include <stdbool.h>
 
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<stdio.h>
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 các 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 cho dù dùng cách nào thì bạn vẫ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

Tags: