布林值
Boolean 型別表示邏輯值:true 與 false。
在回答「是或否」問題的函式,以及 while、if 與 when 的條件中使用 Boolean 值。
宣告 Boolean 變數
要宣告 Boolean 變數,請對其指派 true 或 false。
您可以明確指定 Boolean 型別,或讓 Kotlin 從值中自動推論:
val isTrue: Boolean = true
val isFalse = false // Kotlin 推論為 Boolean如果值可以為 null,請使用 Boolean?:
val isEnabled: Boolean? = null您不能將整數值指派給
Boolean變數。 在 Kotlin 中,0與1不是Boolean值。
產出 Boolean 值
您可以使用比較運算式與函式來產出 Boolean 值:
fun main() {
val number = 10
val isPositive = number > 0
println(isPositive) // true
val language = "Kotlin"
val isEmpty = language.isEmpty()
println(isEmpty) // false
}您也可以在條件與其他運算式中使用這些結果:
fun main() {
val number = 10
val isPositive = number > 0 // true
if (isPositive) {
println("The number is positive.")
}
}Boolean 運算
Kotlin 提供了用於處理 Boolean 值的運算子與中綴函式。您可以使用它們來反轉 Boolean 值,或將多個 Boolean 值結合成單一結果。
否定 (NOT)
NOT 運算子會反轉 Boolean 值。
要使用 NOT,請在 Boolean 值之前放置 ! 運算子:
val isOn = true
val isOff = !isOn // isOff 為 false邏輯 AND(合取)
僅當兩個運算元皆為 true 時,AND 運算子才會傳回 true。
要使用邏輯 AND,請在運算元之間放置 && 運算子:
val a = false && false // false
val b = false && true // false
val c = true && false // false
val d = true && true // true如果第一個運算元為
false,&&運算子就會跳過第二個運算元的評估。 若要評估兩個運算元,請改用and中綴函式。
邏輯 OR(析取)
如果至少有一個運算元為 true,OR 運算子就會傳回 true。
要使用邏輯 OR,請在運算元之間放置 || 運算子:
val a = false || false // false
val b = false || true // true
val c = true || false // true
val d = true || true // true如果第一個運算元為
true,||運算子就會跳過第二個運算元的評估。 若要評估兩個運算元,請改用or中綴函式。
互斥或 (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
xor是一個 中綴函式,而不是運算子。在 API 參考文件 中了解更多關於
Boolean函式的資訊。
運算子優先級
如果運算式包含多個邏輯運算,且沒有使用圓括號來指定評估順序,Kotlin 將套用優先級規則。較高優先級的運算會先於較低優先級的運算進行評估。
對於本節中說明的 Boolean 運算,優先級順序如下:
!xor(以及其他中綴函式)&&||
在以下範例中,編譯器會先評估 && 再評估 ||:
fun main() {
val result = true || false && false
println(result) // true
}要使評估順序更明確,請使用圓括號:
fun main() {
val result = (true || false) && false
println(result) // false
}條件中的 Boolean
if、when 與 while 會評估 Boolean 運算式以引導程式流程。
if 運算式
fun main() {
val number = 4
val isEven = number % 2 == 0
// 條件已經是 `Boolean` 型別
// 您不需要將其與 `true` 或 `false` 進行比較
if (isEven) {
println("The number is even.")
} else {
println("The number is odd.")
}
}when 運算式
fun main() {
val number = 3
when {
number > 0 -> println("The number is positive.")
number < 0 -> println("The number is negative.")
else -> println("The number is zero.")
}
}while 迴圈
fun main() {
var isCalculating = true
while (isCalculating) {
println("Calculating...")
isCalculating = false
}
}