Kotlin if 表达式

if...else 的传统用法

if...else 的语法是

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

testExpression 被计算为 true 时,if 执行某段代码。它可以有一个可选的 else 子句。如果 testExpression 为 false,则执行 else 子句中的代码。


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

fun main(args: Array<String>) {

    val number = -10

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

运行程序后,输出将是

Negative number

Kotlin if 表达式

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


这是一个示例

示例:Kotlin if 表达式


fun main(args: Array<String>) {

    val number = -10

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

    println(result)
}

运行程序后,输出将是

Negative number

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


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

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

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


示例:带有多条语句的 if 代码块

如果 if 分支的代码块包含多条语句,则最后一条语句作为该代码块的值返回。

fun main(args: Array<String>) {

    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 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)
        "positive number"
    else if (number < 0)
        "negative number"
    else 
        "zero"
    
    println("number is $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
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战