编辑这个页面须要登录或更高权限!

Kotlin if 表达式

在本文中,您将借助示例学习在Kotlin中使用 if 表达式。

if ... else 的传统用法

if ... else的语法为:

if (testExpression) {
   //如果testExpression为true,则运行代码
}
else {
  //如果testExpression为false,则运行代码
}

如果 testExpression 的计算结果为 true,则 if 执行代码的特定部分。它可以有可选的 else 子句。如果 testExpression 为false,则执行 else 子句中的代码。

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

fun main(args: Array<String>) {

    val number = -10

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

运行该程序时,输出为:

负数

Kotlin if 表达

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

这是一个实例:

示例:Kotin 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 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