Tư duy Lập trình: Logic & Bảng Chân Trị
Quảng cáo • Advertisement
📢 Sponsor Ad
Google AdSense
lesson.content.title
lesson.content.subtitle
🎯 Logic: Ngôn ngữ của "Người Ấy" (Máy tính)
Bạn có bao giờ cãi nhau với người yêu chưa? "Em ăn gì cũng được" nhưng mua gì về cũng lắc? Đó là vì bạn chưa hiểu Logic Boolean!
Máy tính thì dễ tính hơn, nó chỉ hiểu 0 (Sai/Ghét) và 1 (Đúng/Yêu). Để tán đổ em máy tính, bạn phải thuộc lầu lầu các chiêu thức sau.
1. Bảng chân trị (Truth Table) - Bí kíp tán gái
Hãy tưởng tượng A và B là điều kiện để bạn được đi chơi.
| A (Có tiền) | B (Đẹp trai) | AND (&&) | OR (||) | XOR (^) | NAND (Not AND) |
|---|---|---|---|---|---|
| 0 | 0 | 0 (Ở nhà) | 0 (Ở nhà) | 0 (Nhạt nhẽo) | 1 |
| 0 | 1 | 0 (Vẫn ở nhà) | 1 (Đi chơi!) | 1 (Thú vị) | 1 |
| 1 | 0 | 0 (Vẫn ở nhà) | 1 (Đi chơi!) | 1 (Thú vị) | 1 |
| 1 | 1 | 1 (Đi chơi mạnh) | 1 (Đi chơi!) | 0 (Cãi nhau) | 0 |
💡 Mẹo nhớ mạch điện:
- AND: Mạch nối tiếp. Đứt 1 dây (0) là tắt đèn.
- OR: Mạch song song. Chỉ cần 1 dây nối (1) là sáng đèn.
- XOR: Công tắc cầu thang. Bật đầu này, tắt đầu kia.
Giải nghĩa chi tiết:
- AND (&&): Khắt khe như bố vợ. Phải ĐỦ (Vừa giàu VỪA đẹp) mới gật đầu.
- OR (||): Dễ tính như bà ngoại. Chỉ cần MỘT trong hai (Hoặc giàu, HOẶC đẹp) là duyệt.
- XOR (Exclusive OR): "Trái dấu hút nhau". Hai đứa KHÁC nhau thì True, GIỐNG nhau thì False. (Nam-Nữ thì yêu, Nam-Nam thì... làm bạn).
- NOT (!): "Con gái nói có là không". !True = False, !False = True.
2. Định luật De Morgan - "Hack" não code bẩn
Một ngày đẹp trời bạn viết dòng code này:
if (!giau && !dep_trai) { return "Cút"; }
Sếp nhìn vào và bảo: "Viết cái quái gì thế?". Hãy dùng De Morgan để "tẩy trắng" dòng code đó.
Công thức thần thánh:
!(A && B) <=> !A || !B
!(A || B) <=> !A && !B (Phủ định của Tổng là Tích các phủ định)
Áp dụng vào ví dụ trên:
!giau && !dep_trai <=> !(giau || dep_trai)
-> Dịch tiếng Việt: "Nếu KHÔNG (Giàu HOẶC Đẹp trai)" -> Logic tự nhiên hơn hẳn!
3. Short-circuit (Đi đường tắt)
Trình biên dịch (Compiler) rất lười. Nó luôn tìm cách làm ít nhất có thể.
- Với phép AND (A && B): Nếu A sai -> Dẹp luôn, khỏi check B. (Vì False AND gì cũng là False).
- Với phép OR (A || B): Nếu A đúng -> Dẹp luôn, khỏi check B. (Vì True OR gì cũng là True).
⚠️ Cẩn thận "Sập hầm" (NullPointerException)
Sai lầm tân thủ:
if (user.name == "Admin" && user != null) { ... }
Nếu user là null -> Vào check user.name trước -> BÙM! Crash app.
Sửa lại (Tận dụng Short-circuit):
if (user != null && user.name == "Admin") { ... }
Nếu user null -> Vế đầu False -> Dừng luôn -> An toàn tuyệt đối.
Quảng cáo • Advertisement
📢 Ad Space
Google AdSense