Kotlin - 布尔值


很多时候我们会遇到需要做出“是”“否”决定的情况,或者我们可以说“对”“错”。为了处理这种情况,Kotlin 有一个布尔数据类型,它可以取值truefalse

Kotlin 也有一个可为 null 的对应布尔值?可以有空

创建布尔变量

可以使用Boolean关键字创建布尔变量,该变量只能采用truefalse值:

例子

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

当你运行上面的 Kotlin 程序时,它将生成以下输出:

true
false

事实上,我们可以在不使用Boolean关键字的情况下创建 Kotlin 布尔变量,并且 Kotlin 会根据指定的值truefalse来理解变量类型

Kotlin 布尔运算符

Kotlin为布尔变量提供了以下内置运算符。这些运算符也称为逻辑运算符:

操作员 姓名 描述 例子
&& 逻辑和 如果两个操作数都为 true,则返回 true x && y
|| 逻辑或 如果任一操作数为 true,则返回 true x|| y
逻辑非 将结果取反,如果操作数为 true,则返回 false !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 布尔表达式

布尔表达式返回truefalse值,主要用于使用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()函数分别执行逻辑NOTXOR运算。

布尔值到字符串

您可以使用toString()函数将布尔对象转换为其等效的字符串表示形式。

在字符串变量中分配truefalse值时,您将需要此转换。

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 两个值

问题 2 - 以下程序的输出是什么:

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

A - 这将成功编译,没有错误和警告

B - 这只会引发警告

C - 编译将因错误而停止

D - 以上都不是

答案:C

解释

编译将因类型不匹配错误而停止,因为我们试图将布尔值存储到字符串变量中。在将布尔值分配给字符串变量之前,我们应该使用 toString() 将布尔值转换为字符串值。