Boolean là kiểu dữ liệu gì

Trong bài học này, chúng ta cùng tìm hiểu về một kiểu dữ liệu được dùng rất thường xuyên trong ngôn ngữ lập trình C++. Đó là kiểu dữ liệu bool.

Nhìn lại bảng các kiểu dữ liệu cơ bản trong các bài trước, chúng ta thấy kiểu bool có kích thước nhỏ nhất.

Kiểu dữ liệu bool được dùng để lưu trữ kết quả của một mệnh đề toán học trong máy tính.

Mệnh đề toán học là gì?

Mệnh đề toán học [hay còn gọi là mệnh đề logic] là một phát biểu mà nó chỉ có thể xảy ra một trong hai trường hợp: đúng hoặc sai.

Ví dụ:

  • Mệnh đề A = "Chúng ta đang học lập trình C++". Mình có thể nói A là một mệnh đề đúng.

  • Mệnh đề B = "5 là số chẵn". Đây hiển nhiên là một mệnh đề sai.

Vậy thì, kết quả đúng hoặc sai của một mệnh đề là một sự hiển nhiên, có thể thấy được ngay.

Tính đúng sai của một mệnh đề cũng có thể thay đổi theo thời gian.

Ví dụ:

  • Mệnh đề C = "Hôm nay là thứ ba". Mệnh đề này có thể đúng hoặc sai tùy vào thời điểm mình phát biểu nó.

Những câu mệnh lệnh, cảm thán hay câu hỏi ... đều không thể đóng vai trò là một mệnh đề vì chúng không phản ánh được sự đúng hoặc sai.

Mệnh đề khẳng định và mệnh đề phủ định

Thử xét lại mệnh đề B ở ví dụ trên.

B = "5 là số chẵn". Đây chính là một mệnh đề khẳng định, nó khẳng định rằng 5 là số chẵn. Và nó cho chúng ta kết quả sai.

Vậy thì nếu chúng ta phủ định lại mệnh đề B, chúng ta sẽ được một mệnh đề có kết quả đúng.

X = "5 không phải là số chẵn".

Để phủ định một mệnh đề, chúng ta thường thêm vào từ không hoặc không phải. Nếu chúng ta phủ định mệnh đề B 2 lần, chúng ta được mệnh đề B ban đầu. Đây được gọi là quy luật phủ định của phủ định.

Mệnh đề trong ngôn ngữ lập trình C++

Ngôn ngữ C++ có hổ trợ cho chúng ta việc biểu diễn các mệnh đề toán học. Mình lấy một số ví dụ như sau:

1 < 2; //đúng
5 > 10; //sai
1 + 1 == 2; //đúng

int a = 2, b = 4;
a * 3 != b; //đúng

Trên đây là một vài ví dụ về cách biểu diễn mệnh đề trong ngôn ngữ C++. Như các bạn thấy, máy tính không thể hiểu được các phát biểu bằng lời như "Đây là ngôn ngữ C++" hay là "Học lập trình không khó", chúng chỉ có thể hiểu được các mệnh đề dưới dạng các con số, các biểu thức so sánh...

Khai báo và khởi tạo biến kiểu bool

Kiểu bool là kiểu dữ liệu chỉ nhận một trong hai giá trị true [đúng] hoặc false [sai] tương ứng với kết quả của mệnh đề toán học trong C++.

Chúng ta khai báo [và khởi tạo] biến kiểu bool tương tự như cách khai báo biến có các kiểu dữ liệu mà các bạn đã được làm quen.

bool b;

Trong đó, bool là kiểu dữ liệu và b là tên biến.

Chúng ta có thể gán trực tiếp giá trị true hoặc false cho biến kiểu bool.

bool b1 = true;
bool b2[false];
bool b3 { true };

Giá trị của biến kiểu bool có thể bị đảo từ true sang false hoặc ngược lại nếu sử dụng toán tử not [!].

bool b1 = !true; //not true => false
bool b2[!false]; //not false => true

Khi biểu diễn giá trị của biến kiểu bool trên máy tính, nó hoàn toàn không phải là true hoặc false mà được định dạng kiểu integer. Giá trị true ứng với số 1, giá trị false ứng với số 0. Cùng thử chạy đoạn code mẫu dưới đây để kiểm chứng:

#include 
using namespace std;
 
int main[]
{
    bool b[true];
    cout 

Chủ Đề