布尔(Boolean)类型
Boolean 类型表示逻辑值: true 和 false.
Boolean 值可以用在需要回答是/否问题的函数中, 以及用在 while, if, 和 when 的条件表达式中.
声明 Boolean 变量
要声明一个 Boolean 变量, 请将 true 或 false 赋值给它.
可以明确指定 Boolean 类型, 也可以让 Kotlin 从值中推断类型:
val isTrue: Boolean = true
val isFalse = false // Kotlin 推断类型为 Boolean
如果值可以为 null, 请使用 Boolean?:
val isEnabled: Boolean? = null
生成 Boolean 值
可以使用比较表达式和函数来生成 Boolean 值:
fun main() {
//sampleStart
val number = 10
val isPositive = number > 0
println(isPositive)
// 输出结果为: true
val language = "Kotlin"
val isEmpty = language.isEmpty()
println(isEmpty)
// 输出结果为: false
//sampleEnd
}
也可以在条件表达式和其他表达式中使用这些结果:
fun main() {
//sampleStart
val number = 10
val isPositive = number > 0 // 结果为 true
if (isPositive) {
println("The number is positive.")
}
//sampleEnd
}
Boolean 运算
Kotlin 提供了运算符和中缀函数来处理 Boolean 值. 可以使用它们对 Boolean 值取反, 或将多个 Boolean 值合并为一个结果.
取反(NOT)
NOT 运算符对 Boolean 值取反.
要使用 NOT, 请在 Boolean 值前面放置 ! 运算符:
val isOn = true
val isOff = !isOn // isOff 为 false
逻辑与(AND)
AND 运算符仅在两个操作数都为 true 时返回 true.
要使用逻辑与, 请在操作数之间放置 && 运算符:
val a = false && false // 结果为 false
val b = false && true // 结果为 false
val c = true && false // 结果为 false
val d = true && true // 结果为 true
逻辑或(OR)
OR 运算符在至少一个操作数为 true 时返回 true.
要使用逻辑或, 请在操作数之间放置 || 运算符:
val a = false || false // 结果为 false
val b = false || true // 结果为 true
val c = true || false // 结果为 true
val d = true || true // 结果为 true
异或(XOR)
异或(XOR)运算在两个操作数值不相同时返回 true.
要使用 XOR, 请在操作数之间写 xor:
val a = false xor false // 结果为 false
val b = false xor true // 结果为 true
val c = true xor false // 结果为 true
val d = true xor true // 结果为 false
运算符优先级
如果一个表达式包含多个逻辑运算, 而且没有括号来指定求值顺序, Kotlin 会使用优先级规则. 优先级较高的运算会在优先级较低的运算之前求值.
对于本节描述的 Boolean 运算, 优先级顺序如下:
!xor(以及其他中缀函数)&&||
在下面的示例中, 编译器先对 && 求值, 再对 || 求值:
fun main() {
//sampleStart
val result = true || false && false
println(result)
// 输出结果为: true
//sampleEnd
}
要明确指定求值顺序, 请使用括号:
fun main() {
//sampleStart
val result = (true || false) && false
println(result)
// 输出结果为: false
//sampleEnd
}
在条件表达式中使用 Boolean
if, when, 和 while 通过对 Boolean 表达式求值来控制程序流程.
if 表达式
fun main() {
//sampleStart
val number = 4
val isEven = number % 2 == 0
// 条件已经是 `Boolean` 类型
// 不需要与 `true` 或 `false` 进行比较
if (isEven) {
println("The number is even.")
} else {
println("The number is odd.")
}
//sampleEnd
}
when 表达式
fun main() {
//sampleStart
val number = 3
when {
number > 0 -> println("The number is positive.")
number < 0 -> println("The number is negative.")
else -> println("The number is zero.")
}
//sampleEnd
}
while 循环
fun main() {
//sampleStart
var isCalculating = true
while (isCalculating) {
println("Calculating...")
isCalculating = false
}
//sampleEnd
}
2026/07/24