Menu
CoddyTech

Boolean là gì?

Trong lập trình, boolean là kiểu dữ liệu có đúng hai giá trị, true và false. Chương trình có được boolean từ các phép so sánh như age >= 18 và dùng chúng để quyết định đoạn code nào được chạy, trong câu lệnh if và điều kiện của vòng lặp.

Tác giả Kevin Spektor, Co-founder & CTO

Cập nhật 24 tháng 9, 2026

Mọi quyết định của chương trình đều quy về một câu hỏi có hai câu trả lời: mật khẩu có đúng không, giỏ hàng có trống không, đồng hồ đã đếm về 0 chưa. Boolean là kiểu dữ liệu chứa những câu trả lời đó. Nó được đặt theo tên George Boole, nhà toán học người Anh đã mô tả một đại số của các giá trị đúng và sai trong những cuốn sách xuất bản năm 1847 và 1854.

Boolean đến từ đâu

Bạn hiếm khi gõ thẳng True hay False. Phần lớn boolean sinh ra từ các phép so sánh, vốn đặt câu hỏi về hai giá trị và trả lời bằng một boolean:

Toán tửÝ nghĩaVí dụKết quả
==bằng3 == 3True
!=khác3 != 3False
<, >nhỏ hơn, lớn hơn2 < 5True
<=, >=không quá, ít nhất17 >= 18False

Boolean có thể được lưu trong một biến như mọi giá trị khác và kết hợp với các boolean khác:

False
<class 'bool'>
False
True

Kết hợp boolean: and, or, not

Ba toán tử logic tạo ra điều kiện lớn từ những điều kiện nhỏ. and chỉ đúng khi cả hai vế đều đúng. or đúng khi ít nhất một vế đúng. not đảo ngược một giá trị.

aba and ba or bnot a
TrueTrueTrueTrueFalse
TrueFalseFalseTrueFalse
FalseTrueFalseTrueTrue
FalseFalseFalseFalseTrue

Python viết các toán tử này bằng chữ. C, Java và JavaScript dùng ký hiệu: && cho and, || cho or, ! cho not. Cả bốn ngôn ngữ đều ngừng tính ngay khi đã biết kết quả, nên trong a and b, vế phải không bao giờ được kiểm tra khi a là false. Cách này gọi là đánh giá ngắn mạch (short-circuit evaluation). Hướng dẫn toán tử logic trong Python giải thích chi tiết.

Boolean điều khiển chương trình thế nào

Câu lệnh if chỉ chạy khối lệnh của nó khi điều kiện đúng. Vòng lặp while lặp lại khối lệnh chừng nào điều kiện còn đúng, nên mọi vòng lặp đều được điều khiển bởi một boolean được kiểm tra lại trước mỗi lượt. Sự lặp lại đó gọi là lặp.

Hot day
Countdown: 3
Countdown: 2
Countdown: 1

Khi count về 0, điều kiện count > 0 trở thành False và vòng lặp kết thúc. Nếu điều kiện không bao giờ có thể thành false, vòng lặp sẽ chạy mãi mãi.

Boolean dưới dạng 1 và 0

Boolean chỉ cần một bit thông tin: 1 cho true, 0 cho false. Trên thực tế, các ngôn ngữ lưu boolean trong ít nhất một byte trọn vẹn, vì byte là đơn vị bộ nhớ nhỏ nhất có địa chỉ riêng. Trong C, bool từ <stdbool.h> chiếm 1 byte với gcc và clang. Những chương trình cần hàng triệu cờ sẽ gói 8 cờ vào mỗi byte bằng toán tử bit.

Các ngôn ngữ không thống nhất về chuyện boolean có đồng thời là số hay không. Trong Python, bool là lớp con của int, nên True bằng 1 và False bằng 0. Nhờ vậy việc đếm rất dễ:

True True
2
3 correct

JavaScript cũng cho ra 2 với true + true. C không có kiểu boolean cho đến C99 và đến giờ vẫn coi mọi số khác 0 là true. Java thì nghiêm ngặt: if (1) không biên dịch được, vì điều kiện trong Java bắt buộc phải là boolean.

Giá trị truthy và falsy

Python và JavaScript cho phép dùng bất kỳ giá trị nào làm điều kiện, không chỉ True và False. Những giá trị được tính là false gọi là falsy; mọi giá trị còn lại là truthy.

0 -> False
42 -> True
'' -> False
'False' -> True
[] -> False
[0] -> True
None -> False

Trong Python, số 0, chuỗi rỗng, các tập hợp rỗng và None là falsy. Chuỗi "False" là truthy, vì nó là một chuỗi có năm ký tự. JavaScript có các giá trị falsy riêng, gồm false, 0, "", null, undefined và NaN, và ở đó mảng rỗng [] là truthy. Xem truthy và falsy trong JavaScript để biết đầy đủ quy tắc.

Lỗi thường gặp

So sánh với True. if is_ready == True: chạy được, nhưng if is_ready: nói cùng một điều mà gọn hơn. Với trường hợp false, hãy viết if not is_ready:.

Coi văn bản là boolean. Dữ liệu từ người dùng, từ tệp hay từ form đều đến dưới dạng chuỗi, nên bool("false") là True. Hãy so sánh văn bản: answer == "yes".

Viết hoa sai. Python viết True và False; JavaScript, Java và C viết true và false. Gõ true trong Python sẽ ra lỗi NameError: name 'true' is not defined.

Tên mơ hồ. Đặt tên boolean như một câu hỏi có hoặc không, chẳng hạn is_valid, has_access hay can_edit, để điều kiện đọc lên như một câu: if user.can_edit:.

Học tiếp ở đâu

Boolean quyết định vòng lặp chạy bao nhiêu lần, nên lặp là gì là trang nên đọc tiếp, còn bit là gì cho thấy số 0 và 1 nằm bên dưới mọi giá trị true và false. Để biết chi tiết trong Python, hãy đọc số và boolean, rồi luyện tập điều kiện trong khóa học Python.

Câu hỏi thường gặp

Ví dụ về boolean là gì?
Phép so sánh 5 > 3 là một biểu thức boolean, và giá trị của nó là True. Một biến như is_logged_in = False chứa một giá trị boolean. Trong danh mục thư viện, lệnh tìm cats AND dogs là một truy vấn Boolean dùng chính logic đó.
Boolean là 1 hay 0?
Boolean có hai giá trị, và nhiều ngôn ngữ biểu diễn chúng là 1 cho true, 0 cho false. Trong Python True == 1 là True, còn trong C mọi số khác 0 đều được tính là true. Java thì tách bạch: boolean trong Java hoàn toàn không dùng được như một con số.
Boolean có phải chỉ là có hoặc không?

Đúng vậy. Boolean chứa đúng một trong hai giá trị, bạn có thể hiểu là có hoặc không, bật hoặc tắt, đúng hoặc sai. Khi một thứ có nhiều hơn hai trạng thái, chẳng hạn đơn hàng đang chờ, đã thanh toán hoặc đã hoàn tiền, hãy dùng chuỗi hoặc enum thay vì nhiều boolean.

Boolean trong Python là gì?
Kiểu boolean của Python là bool, với hai giá trị True và False, viết hoa chữ cái đầu. bool là lớp con của int, nên True hoạt động như 1 trong các phép tính. Hàm bool() chuyển bất kỳ giá trị nào thành True hoặc False theo quy tắc truthy của Python.
Tìm kiếm Boolean là gì?
Tìm kiếm Boolean kết hợp các từ khóa với toán tử AND, OR và NOT để thu hẹp hoặc mở rộng kết quả. python AND tutorial yêu cầu có cả hai từ, python OR java chấp nhận một trong hai, còn python NOT snake loại các trang có từ thứ hai. Danh mục thư viện và cơ sở dữ liệu nghiên cứu hỗ trợ trực tiếp kiểu tìm này, còn Google chấp nhận OR và dấu trừ thay cho NOT.
Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu