🔗 Toán tử Logic
1. AND operator (&&)
Phần tiêu đề “1. AND operator (&&)”val age = 25val hasLicense = true
if (age >= 18 && hasLicense) { println("Can drive")}
// Short-circuit: nếu điều kiện đầu false, không kiểm tra tiếpval x = false && (10 / 0 > 0) // Không lỗi vì không chạy 10/02. OR operator (||)
Phần tiêu đề “2. OR operator (||)”val isWeekend = trueval isHoliday = false
if (isWeekend || isHoliday) { println("Day off!")}
// Short-circuit: nếu điều kiện đầu true, không kiểm tra tiếpval y = true || (10 / 0 > 0) // Không lỗi3. NOT operator (!)
Phần tiêu đề “3. NOT operator (!)”val isRaining = false
if (!isRaining) { println("Go outside")}
val isValid = trueval isInvalid = !isValid // false4. Kết hợp nhiều toán tử
Phần tiêu đề “4. Kết hợp nhiều toán tử”val age = 25val hasLicense = trueval hasInsurance = false
if (age >= 18 && hasLicense && !hasInsurance) { println("Need insurance")}5. Thứ tự ưu tiên
Phần tiêu đề “5. Thứ tự ưu tiên”// ! > && > ||val result = true || false && false // true// Tương đương: true || (false && false)
// Nên dùng ngoặc để rõ ràngval result2 = (true || false) && false // false6. Truth table
Phần tiêu đề “6. Truth table”// AND (&&)println(true && true) // trueprintln(true && false) // falseprintln(false && true) // falseprintln(false && false) // false
// OR (||)println(true || true) // trueprintln(true || false) // trueprintln(false || true) // trueprintln(false || false) // false
// NOT (!)println(!true) // falseprintln(!false) // true7. Elvis operator (không phải logic, nhưng hay dùng)
Phần tiêu đề “7. Elvis operator (không phải logic, nhưng hay dùng)”val name: String? = nullval displayName = name ?: "Guest" // "Guest"8. Ví dụ thực tế
Phần tiêu đề “8. Ví dụ thực tế”fun canVote(age: Int, isCitizen: Boolean): Boolean { return age >= 18 && isCitizen}
fun isWeekend(day: String): Boolean { return day == "Saturday" || day == "Sunday"}
fun validatePassword(password: String): Boolean { val hasLength = password.length >= 8 val hasUpper = password.any { it.isUpperCase() } val hasLower = password.any { it.isLowerCase() } val hasDigit = password.any { it.isDigit() }
return hasLength && hasUpper && hasLower && hasDigit}📝 Tóm tắt
Phần tiêu đề “📝 Tóm tắt”&&- AND (cả hai phải true)||- OR (một trong hai true)!- NOT (đảo ngược)- Short-circuit evaluation
- Thứ tự ưu tiên:
!>&&>|| - Dùng ngoặc
()để rõ ràng