Kotlin if 表達(dá)式

在本文中,您將借助示例學(xué)習(xí)在Kotlin中使用 if 表達(dá)式。

if ... else 的傳統(tǒng)用法

if ... else的語法為:

if (testExpression) {
   //如果testExpression為true,則運行代碼
}
else {
  //如果testExpression為false,則運行代碼
}

如果 testExpression 的計算結(jié)果為 true,則 if 執(zhí)行代碼的特定部分。它可以有可選的 else 子句。如果 testExpression 為false,則執(zhí)行 else 子句中的代碼。

示例:if ... else 的傳統(tǒng)用法

fun main(args: Array<String>) {

    val number = -10

    if (number > 0) {
        print("正數(shù)")
    } else {
        print("負(fù)數(shù)")
    }
}

運行該程序時,輸出為:

負(fù)數(shù)

Kotlin if 表達(dá)

與Java(以及其他許多編程語言)不同,if可以在Kotlin中使用表達(dá)式;它返回一個值。推薦閱讀: Kotlin表達(dá)

這是一個實例:

示例:Kotin if 表達(dá)式

fun main(args: Array<String>) {

    val number = -10

    val result = if (number > 0) {
        "正數(shù)"
    } else {
        "負(fù)數(shù)"
    }

    println(result)
}

運行該程序時,輸出為:

負(fù)數(shù)

在將if用作表達(dá)式時,則else分支是必需的。

如果的主體if只有一個語句,則花括號是可選的。例如,

fun main(args: Array<String>) {
    val number = -10
    val result = if (number > 0) "正數(shù)" else "負(fù)數(shù)"
    println(result)
}

這類似于Java中的三元運算符。因此,在Kotlin中沒有三元運算符。

示例:if塊具有多個表達(dá)式

如果 if 分支塊包含多個表達(dá)式,則最后一個表達(dá)式作為該塊的值返回。

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)
        "正數(shù)"
    else if (number < 0)
        "負(fù)數(shù)"
    else 
        "零"
    
    println("數(shù)字為 $result")
}

該程序檢查 number 是正數(shù)、負(fù)數(shù)還是零。

Kotlin 嵌套if表達(dá)式

一個if表達(dá)式可以位于另一個if表達(dá)式的塊內(nèi),稱為嵌套if表達(dá)式。

示例:if 表達(dá)式嵌套

該程序計算三個數(shù)字中最大的數(shù)字。

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
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清