📜  Kotlin if表达

📅  最后修改于: 2020-10-05 14:48:54             🧑  作者: Mango

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

if … else的传统用法

if … else的语法为:

if (testExpression) {
   // codes to run if testExpression is true
}
else {
  // codes to run if testExpression is false
}

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


示例:if … else的传统用法

fun main(args: Array) {

    val number = -10

    if (number > 0) {
        print("Positive number")
    } else {
        print("Negative number")
    }
}

运行该程序时,输出为:

Negative number

Kotlin if表达

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


这是一个例子:

示例:Kotin if表达式

fun main(args: Array) {

    val number = -10

    val result = if (number > 0) {
        "Positive number"
    } else {
        "Negative number"
    }

    println(result)
}

运行该程序时,输出为:

Negative number

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


如果if的主体只有一个语句, if花括号是可选的。例如,

fun main(args: Array) {
    val number = -10
    val result = if (number > 0) "Positive number" else "Negative number"
    println(result)
}

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


示例:if块具有多个表达式

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

fun main(args: Array) {

    val a = -9
    val b = -11

    val max = if (a > b) {
        println("$a is larger than $b.")
        println("max variable holds value of a.")
        a
    } else {
        println("$b is larger than $a.")
        println("max variable holds value of b.")
        b
    }
    println("max = $max")
}

运行该程序时,输出为:

-9 is larger than -11.
max variable holds value of a.
max = -9

推荐读物: Kotlin当声明


Kotlin if..else..if梯子

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


示例:if … else … if Ladder

fun main(args: Array) {

    val number = 0

    val result = if (number > 0)
        "positive number"
    else if (number < 0)
        "negative number"
    else 
        "zero"
    
    println("number is $result")
}

该程序检查数字是正数,负数还是零。


Kotlin如果表达式嵌套

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


示例:如果表达式嵌套

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

fun main(args: Array) {

    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