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语句并检查给定的条件。如果此条件评估为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语句。

问题 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-芒果

B-橙色

C-苹果

D - 以上都不是

答案:B

解释

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