Toán tử logic (Logical Operators) trong Kotlin
1. AND operator (&&)
val age = 25
val 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ếp
val x = false && (10 / 0 > 0) // Không lỗi vì không chạy 10/02. OR operator (||)
val isWeekend = true
val isHoliday = false
if (isWeekend || isHoliday) {
println("Day off!")
}
// Short-circuit: nếu điều kiện đầu true, không kiểm tra tiếp
val y = true || (10 / 0 > 0) // Không lỗi3. NOT operator (!)
val isRaining = false
if (!isRaining) {
println("Go outside")
}
val isValid = true
val isInvalid = !isValid // false4. Kết hợp nhiều toán tử
val age = 25
val hasLicense = true
val hasInsurance = false
if (age >= 18 && hasLicense && !hasInsurance) {
println("Need insurance")
}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àng
val result2 = (true || false) && false // false6. Truth table
// AND (&&)
println(true && true) // true
println(true && false) // false
println(false && true) // false
println(false && false) // false
// OR (||)
println(true || true) // true
println(true || false) // true
println(false || true) // true
println(false || false) // false
// NOT (!)
println(!true) // false
println(!false) // true7. Elvis operator (không phải logic, nhưng hay dùng)
val name: String? = null
val displayName = name ?: "Guest" // "Guest"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
&&- 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
Last updated on