Kotlin - if...else 表达式



Kotlin if...else 表达式的工作方式与任何其他现代计算机编程语言中的 if...else 表达式类似。因此,让我们从 Kotlin 中提供的传统 if...else 语句开始。

语法

传统 if...else 表达式的语法如下所示

if (condition) {
   // code block A to be executed if condition is true
} else {
  // code block B to be executed if condition is false
}

此处执行 if 语句并检查给定的 condition。如果此条件计算结果为 true,则执行代码块 A,否则程序进入 else 部分并执行代码块 B。

示例

您可以尝试以下示例

fun main(args: Array<String>) {
    val age:Int = 10

    if (age > 18) {
        print("Adult")
    } else {
        print("Minor")
    }
}

运行上述 Kotlin 程序时,将生成以下输出

Minor

Kotlin if...else 表达式

Kotlin if...else 也可以用作表达式,该表达式返回值,并且此值可以分配给变量。以下是 Kotlin if...else 表达式的简单语法

语法

val result = if (condition) {
   // code block A to be executed if condition is true
} else {
  // code block B to be executed if condition is false
}

如果您将 if 用作表达式,例如,为了返回值或将其分配给变量,则 else 分支是必须的。

示例

fun main(args: Array<String>) {
    val age:Int = 10

    val result = if (age > 18) {
        "Adult"
    } else {
        "Minor"
    }
    println(result)
}

运行上述 Kotlin 程序时,将生成以下输出

Minor

if 只有一个语句时,您可以省略花括号 {}

fun main(args: Array<String>) {
    val age:Int = 10

    val result = if (age > 18) "Adult" else  "Minor"
    println(result)
}

运行上述 Kotlin 程序时,将生成以下输出

Minor

您可以在 if...else 块中包含多个语句,在这种情况下,最后一个表达式将作为块的值返回。尝试以下示例

fun main(args: Array<String>) {
    val age:Int = 10

    val result = if (age > 18) {
        println("Given condition is true")
        "Adult"
    } else {
        println("Given condition is false")
        "Minor"
    }
    print("The value of result : ")
    println(result)
}

运行上述 Kotlin 程序时,将生成以下输出

Given condition is false
The value of result : Minor

Kotlin if...else...if 阶梯

如果第一个条件为假,您可以使用 else if 条件来指定新的条件。

语法

if (condition1) {
  // code block A to be executed if condition1 is true
} else if (condition2) {
  // code block B to be executed if condition2 is true
} else {
  // code block C to be executed if condition1 and condition2 are false
}

示例

fun main(args: Array<String>) {
    val age:Int = 13

    val result = if (age > 19) {
        "Adult"
    } else if ( age > 12 && age  < 20 ){
        "Teen"
    } else {
        "Minor"
    }
    print("The value of result : ")
    println(result)
}

运行上述 Kotlin 程序时,将生成以下输出

The value of result : Teen

Kotlin 嵌套 if 表达式

Kotlin 允许将一个 if 表达式放在另一个 if 表达式内部。这称为 嵌套 if 表达式

语法

if(condition1) {
   // code block A to be executed if condition1 is true
   if( (condition2) {
      // code block B to be executed if condition2 is true
   }else{
      // code block C to be executed if condition2 is fals
   }
} else {
  // code block D to be executed if condition1 is false
}

示例

fun main(args: Array<String>) {
    val age:Int = 20 

    val result = if (age > 12) {
       if ( age > 12 && age  < 20 ){
           "Teen"
       }else{
           "Adult"
       }
    } else {
        "Minor"
    }
    print("The value of result : ")
    println(result)
}

运行上述 Kotlin 程序时,将生成以下输出

The value of result : Adult

测验时间 (面试及考试准备)

答案:D

解释

所有提到的语句关于 Kotlin if 表达式都是正确的。

答案:B

解释

Kotlin 不支持 if...then...else 语句。

Q 3 - 以下代码的输出是什么?

fun main(args: Array<String>) {

    var x = 20
    var y = 15
    var z = "Mango"

    val result = if (x > y ) {
       z = "Orange"
    } else {
       z = "Apple"
    }
    println("Value of result = $z")
}

A - Mango

B - Orange

C - Apple

D - 以上均不

答案:B

解释

正确答案是 Orange,因为 x 大于 y,所以一旦此条件为真,它就会将 Orange 分配给 z 变量。

广告