CodeGym /Các khóa học /C# SELF /Kiểu logic bool và các phép toán logic

Kiểu logic bool và các phép toán logic

C# SELF
Mức độ , Bài học
Có sẵn

1. Kiểu dữ liệu logic: bool

Như bạn đã thấy, trong C# có một toán tử rất hữu ích — if-else. Nó thực hiện một khối lệnh nếu điều kiện trong ngoặc là đúng, và khối lệnh khác nếu điều kiện là sai.

Để tiện làm việc với các biểu thức có thể đúng hoặc sai, C# có thêm kiểu đặc biệt — bool. Điểm đặc biệt của nó là biến kiểu này chỉ nhận hai giá trị: true (đúng) và false (sai).

Không thể gán giá trị nào khác cho biến kiểu bool. Compiler sẽ không cho phép đâu.

Ví dụ về biến kiểu bool:

bool isAdult = true;
bool hasMoney = false;
Ví dụ khai báo biến kiểu bool

Biến kiểu bool chỉ có hai giá trị — true (đúng) và false (sai). Hết! Gần giống như test thành công — hoặc "qua", hoặc "fail" (ôi).

2. Các phép so sánh

Vậy kiểu đơn giản này để làm gì? Sức mạnh thực sự của bool thể hiện khi ta xây dựng biểu thức logic. Thường thì chúng được tạo ra nhờ các toán tử so sánh.

Toán tử Ý nghĩa Ví dụ Giá trị
== Bằng
a == b
true hoặc false
!= Không bằng
a != b
true hoặc false
> Lớn hơn
a > b
true hoặc false
< Nhỏ hơn
a < b
true hoặc false
>= Lớn hơn hoặc bằng
a >= b
true hoặc false
<= Nhỏ hơn hoặc bằng
a <= b
true hoặc false

Ví dụ:

int age = 20;
bool isAdult = age >= 18;   // true (20 lớn hơn hoặc bằng 18)
bool isTeenager = age >= 13 && age < 18; // false (20 không nhỏ hơn 18)
bool isEven = age % 2 == 0; // true (20 chia hết cho 2)

isAdult ở đây sẽ là true, vì 20 thực sự là "người lớn".

Lưu ý 1:

Không được tách các toán tử gồm hai ký tự.


a < = 10
speed > = max
age = = 18
time ! = 0
Không được viết như vậy! Toán tử so sánh phải liền nhau: <=, >=, ==, !=

Lưu ý 2:

Chú ý là không có toán tử =>=<: chỉ có <=>=. Nếu bạn viết a =< 3, code sẽ không compile đâu.

Lưu ý 3:

Trong C# bạn không thể viết biểu thức kiểu 18 < age < 65. Vì 18 < age sẽ trả về true hoặc false. Mà so sánh true < 65 (khác kiểu) là không được. Ít nhất là trong C#.

3. Các phép toán logic

Trong C# không thể viết 18 < age < 65 — cú pháp sai và chương trình sẽ không compile.

Nhưng bạn có thể viết như này:


(18 < age)  (age < 65)
Biểu thức logic với hai điều kiện (bằng tiếng Nga)

Tất nhiên, thay vì từ sẽ là toán tử logic khác, và bây giờ mình sẽ nói kỹ hơn về chúng.

Trong C# có ba toán tử logic: AND (và), OR (hoặc) và NOT (không).

Tin vui: dùng ngoặc, bạn có thể xây dựng biểu thức logic phức tạp cỡ nào cũng được.
Tin buồn: dev C# quyết định thay vì dùng từ and, ornot, lại dùng ký hiệu từ C++.

Toán tử logic Kỳ vọng Thực tế
(∧) and &&
HOẶC (∨) or ||
KHÔNG (¬) not !

Dưới đây là vài ví dụ dùng toán tử logic trong C#:

Biểu thức Giải thích Chú thích
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) VÀ (a < 100)
(!a) && (!b) (not a) and (not b) (KHÔNG a) VÀ (KHÔNG b)
!(!a || !b) not((not a) or (not b)) KHÔNG((KHÔNG a) HOẶC (KHÔNG b))

4. Bảng chân trị

Lướt nhanh qua các phép toán logic nhé.

Toán tử AND

Toán tử AND, còn gọi là , &&, conjunction, phép nhân logic.

Biểu thức Kết quả
true && true true
true && false false
false && true false
false && false false

Nói cách khác, kết quả là true (đúng) chỉ khi cả hai giá trị trong biểu thức đều true (đúng). Các trường hợp khác luôn là false (sai).

Toán tử OR

Toán tử OR, còn gọi là HOẶC, ||, disjunction, phép cộng logic.

Biểu thức Kết quả
true || true true
true || false true
false || true true
false || false false

Nói cách khác, kết quả là true (đúng) nếu ít nhất một giá trị trong biểu thức là true (đúng). Nếu cả hai đều false, thì kết quả là false.

Toán tử NOT

Toán tử NOT, còn gọi là KHÔNG, !, phép đảo ngược.

Biểu thức Kết quả
! true false
! false true

Đổi true thành false và ngược lại.

Biểu thức hữu ích:

Biểu thức Kết quả
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. Ví dụ về các phép logic: and, or, not

Phép "VÀ", AND, ký hiệu &&

Kết quả là đúng chỉ khi cả hai biến đều đúng.

int age = 16;
bool hasTicket = true;
bool canAttend = age >= 14 && hasTicket; // true (16 lớn hơn 14 VÀ có vé)

Nếu bạn đủ 14 có vé — vào đi!

Phép "HOẶC", OR, ký hiệu (||)

Kết quả là đúng nếu ít nhất một điều kiện đúng.

bool isAdmin = false;
bool isModerator = true;
bool canEdit = isAdmin || isModerator; // true (có thể sửa nếu một trong hai là true)

Nếu bạn là admin HOẶC moderator — cứ bấm nút đi!

Phép "KHÔNG", NOT, ký hiệu (!)

Đảo ngược: đúng thành sai, sai thành đúng.

bool isWeekend = false;
bool shouldGoToWork = !isWeekend; // true (không phải cuối tuần thì đi làm)

Nếu KHÔNG phải cuối tuần — dậy đi làm thôi!

Kết hợp: xây điều kiện phức tạp tùy ý

Bạn có thể kết hợp bao nhiêu phép logic cũng được (nhưng đừng quá lố kiểu "nếu không KHÔNG không KHÔNG admin..."). Ngoặc dùng càng nhiều càng rõ ràng càng tốt.

Ví dụ:

int age = 17;
bool hasTicket = false;
bool isVip = true;

bool canGo = (age >= 18 && hasTicket) || isVip; // true, vì isVip = true

Trong ví dụ này: nếu người đó đủ tuổi và có vé, hoặc là VIP — cho vào. Nếu không phải VIP — chỉ vào nếu đủ tuổi và có vé.

2
Nhiệm vụ
C# SELF, mức độ, bài học
Đã khóa
Biểu thức đơn giản với kiểu bool
Biểu thức đơn giản với kiểu bool
2
Nhiệm vụ
C# SELF, mức độ, bài học
Đã khóa
Kiểm tra độ tuổi trưởng thành và trạng thái
Kiểm tra độ tuổi trưởng thành và trạng thái
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION