跳到主要内容

Kotlin if 表达式

提示
  1. 基本的 if...else 结构:在 Kotlin 中,if 判断 testExpressiontrue 时执行其块内代码,可选的 else 子句用于 testExpressionfalse 时的情况。
  2. Kotlin if 表达式的特性:与其他语言不同,Kotlin 中的 if 可以作为表达式使用并返回值,这类似于 Java 中的三元运算符,但在 Kotlin 中不存在三元运算符。
  3. 嵌套和 if..else..if 梯子:Kotlin 支持嵌套 if 表达式和 if..else..if 梯子,允许更复杂的条件判断和代码块执行。

传统用法的 if...else

if...else 的语法是:

if (testExpression) {
// 如果 testExpression 为真时运行的代码
}
else {
// 如果 testExpression 为假时运行的代码
}

iftestExpression 评估为 true 时执行特定部分的代码。它可以有可选的 else 子句。如果 testExpression 为假,则执行 else 子句中的代码。

示例:传统用法的 if...else

fun main(args: Array<String>) {

val number = -10

if (number > 0) {
print("正数")
} else {
print("负数")
}
}

当你运行程序时,输出将是:

负数

Kotlin if 表达式

与 Java(和其他许多编程语言)不同,在 Kotlin 中 if 可以用作表达式;它返回一个值。推荐阅读:Kotlin 表达式

这是一个例子:

示例:Kotlin if 表达式


fun main(args: Array<String>) {

val number = -10

val result = if (number > 0) {
"正数"
} else {
"负数"
}

println(result)
}

当你运行程序时,输出将是:

负数

使用 if 作为表达式时 else 分支是必需的。

如果 if 的主体只有一个语句,则可以省略大括号。例如,

fun main(args: Array<String>) {
val number = -10
val result = if (number > 0) "正数" else "负数"
println(result)
}

这类似于 Java 中的三元运算符。因此,在 Kotlin 中没有三元运算符。

示例:带有多个表达式的 if 块

如果 if 分支的块包含多个表达式,则块的最后一个表达式将作为块的值返回。

fun main(args: Array<String>) {

val a = -9
val b = -11

val max = if (a > b) {
println("$a 大于 $b。")
println("max 变量持有 a 的值。")
a
} else {
println("$b 大于 $a。")
println("max 变量持有 b 的值。")
b
}
println("max = $max")
}

当你运行程序时,输出将是:

-9 大于 -11
max 变量持有 a 的值。
max = -9

推荐阅读:Kotlin when 语句

Kotlin if..else..if 梯子

你可以使用 if..else...if 梯子在 Kotlin 中返回多个代码块中的一个。

示例:if...else...if 梯子

fun main(args: Array<String>) {

val number = 0

val result = if (number > 0)
"正数"
else if (number < 0)
"负数"
else
"零"

println("数字是 $result")
}

此程序检查 number 是正数、负数还是零。

Kotlin 嵌套 if 表达式

一个 if 表达式可以位于另一个 if 表达式的块中,被称为嵌套 if 表达式。

示例:嵌套 if 表达式

此程序计算三个数字中的最大数。

fun main(args: Array<String>) {

val n1 = 3
val n2 = 5
val n3 = -2

val max = if (n1 > n2) {
if (n1 > n3)
n1
else
n3


} else {
if (n2 > n3)
n2
else
n3
}

println("max = $max")
}

当你运行程序时,输出将是:

max = 5