Kotlin - 布林值



很多時候,我們會遇到需要做出是或否決策的情況,或者我們可以說真或假。為了處理這種情況,Kotlin 有一個布林資料型別,它可以取值 **true** 或 **false**。

Kotlin 還有一個 **可空** 的對應型別 **Boolean?**,它可以具有 **null** 值。

建立布林變數

可以使用 **Boolean** 關鍵字建立布林變數,並且此變數只能取值 **true** 或 **false**。

示例

fun main(args: Array<String>) {
   val isSummer: Boolean = true
   val isCold: Boolean = false
  
   println(isSummer)
   println(isCold)
   
}

執行上述 Kotlin 程式時,它將生成以下輸出

true
false

事實上,我們可以不使用 **Boolean** 關鍵字建立 Kotlin 布林變數,Kotlin 將根據分配的值(**true** 或 **false**)理解變數型別。

Kotlin 布林運算子

Kotlin 為布林變數提供了以下 **內建** 運算子。這些運算子也稱為邏輯運算子。

運算子 名稱 描述 示例
&& 邏輯與 如果兩個運算元都為真,則返回真 x && y
|| 邏輯或 如果任一運算元為真,則返回真 x || y
! 邏輯非 反轉結果,如果運算元為真,則返回假 !x

示例

以下示例演示了使用 Kotlin 邏輯運算子進行的不同計算。

fun main(args: Array<String>) {
   var x: Boolean = true
   var y:Boolean = false

   println("x && y = " +  (x && y))
   println("x || y = " +  (x || y))
   println("!y = " +  (!y))
}

執行上述 Kotlin 程式時,它將生成以下輸出

x && y = false
x || y = true
!y = true

Kotlin 布林表示式

布林表示式返回 **true** 或 **false** 值,主要用於使用 **if...else** 表示式檢查條件。布林表示式使用關係運算符,例如 **>, <, >=** 等。

fun main(args: Array<String>) {
   val x: Int = 40
   val y: Int = 20

   println("x > y = " +  (x > y))
   println("x < y = " +  (x < y))
   println("x >= y = " +  (x >= y))
   println("x <= y = " +  (x <= y))
   println("x == y = " +  (x == y))
   println("x != y = " +  (x != y))
}

執行上述 Kotlin 程式時,它將生成以下輸出

x > y = true
x < y = false
x >= y = true
x <= y = false
x == y = false
x != y = true

Kotlin and() 和 or() 函式

Kotlin 提供了 **and()** 和 **or()** 函式來在兩個布林運算元之間執行邏輯 **AND** 和邏輯 **OR** 運算。

這些函式與 **&&** 和 **||** 運算子不同,因為這些函式不執行短路求值,而是始終求值兩個運算元。

fun main(args: Array<String>) {
   val x: Boolean = true
   val y: Boolean = false
   val z: Boolean = true

   println("x.and(y) = " +  x.and(y))
   println("x.or(y) = " +  x.or(y))
   println("x.and(z) = " +  x.and(z))
}

執行上述 Kotlin 程式時,它將生成以下輸出

x.and(y) = false
x.or(y) = true
x.and(z) = true

Kotlin 還提供了 **not()** 和 **xor()** 函式,分別用於執行邏輯 **NOT** 和 **XOR** 運算。

布林值轉換為字串

您可以使用 **toString()** 函式將布林物件轉換為其等效的字串表示形式。

當在 String 變數中賦值 **true** 或 **false** 值時,您將需要此轉換。

fun main(args: Array<String>) {
   val x: Boolean = true
   var z: String
   
   z = x.toString()

   println("x.toString() = " +  x.toString())
   println("z = " +  z)
}

執行上述 Kotlin 程式時,它將生成以下輸出

x.toString() = true
z = true

測驗時間 (面試 & 考試準備)

答案:A

解釋

Kotlin 布林變數只能有兩個值,即 true 或 false。

Q 2 - 以下程式的輸出是什麼?

fun main(args: Array<String>) {
   val x: Boolean = true
   var y: String
   
   y = x
}

A - 這將成功編譯,沒有錯誤和警告

B - 這隻會發出警告

C - 編譯將停止並出現錯誤

D - 以上都不是

答案:C

解釋

編譯將因型別不匹配錯誤而停止,因為我們試圖將布林值儲存到 String 變數中。在將其分配給字串變數之前,我們應該使用 toString() 將布林值轉換為字串值。

廣告