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() 将布尔值转换为字符串值。

广告