# Kotlin `If - Else`表达式

> 原文： [https://beginnersbook.com/2018/09/kotlin-if-else-expression/](https://beginnersbook.com/2018/09/kotlin-if-else-expression/)

在任何编程语言中，我们需要**控制语句**来根据条件的输出来控制程序的流程。例如，如果数字是偶数则显示“偶数”但如果数字是奇数则显示“奇数”。为了在编程中实现这一点，我们需要使用控制语句来检查条件是否满足，如果是，则执行此操作，如果没有则跳过此步骤。在 **kotlin 中，我们使用表达式来控制程序中的流**。在本教程中，我们将学习 Kotlin 中使用的几种**表达式**。

1.  `if`表达式
2.  `if..else`表达式
3.  `if..else if..else`表达式
4.  嵌套表达式

## 1\. Kotlin - `if`表达

`if`表达很容易理解。让我们来看看`if`表达式的语法：

```kotlin
if(condition){  
   // Statements that need to be executed if condition is true 
   ...
} 

```

这里我们在`if`表达式中有一个条件，如果条件返回`true`则执行`if`表达式体内的语句，如果条件返回`false`则完全忽略它们。让我们举个例子来理解这个：

### `if`表达式的例子

在这个例子中，如果给定的数字是偶数，那么我们在输出中显示“偶数”，否则我们跳过`if`里面的语句。

```kotlin
fun main(args: Array<String>) {

    val number = 100

    // if expression
    if (number%2 == 0)
        println("Even Number")

    println("Out Of If statement")
}

```

输出：

```kotlin
Even Number
Out Of If statement
```

让我们改变变量`num`的值。

```kotlin
fun main(args: Array<String>) {

    val number = 101

    if (number%2 == 0)
        println("Even Number")

    println("Out Of If statement")
}

```

输出：

```kotlin
Out Of If statement
```

## 2\. Kotlin - `If..Else`表达式

如果条件为`true`时，我们需要执行某些操作，并且条件为`false`时我们需要执行不同的操作，使用`if else`表达式。例如：如果我通过考试，我父亲会给我钱，否则他们会生气。如果我必须在编程中写这个，那么我会这样做：

```kotlin
fun main(args: Array<String>) {
    // Marks out of 100
    val marks = 90
    if (marks < 30) {
        println("Father will get angry")
    }
    else {
        println("Father will give me money")
    }
}
```

输出：

```kotlin
Father will give me money
```

由于条件返回`false`，因此跳过`if`中的语句并执行`else`中的语句。

**`if..else`表达式的语法：**

```kotlin
if(condition){  
   // Statements that will be executed if the condition returns true 
   ...
}  
else{  
   // Statements that will be executed if the condition returns false 
   ...
}
```

### `if..else`表达式示例

在这个例子中，我们正在检查一个数字，看它是正面的还是负面的。

```kotlin
fun main(args: Array<String>) {
    // Traditional usage
    val num = -101
    if (num < 0) {
        println("Negative number")
    }
    else {
        println("Positive number")
    }
    println("Out of if else statement")
}
```

输出：

```kotlin
Negative number
Out of if else statement
```

## 3\. Kotlin - `if..else if..else`阶梯表达式

在这个表达式中，我们有一个`if`块，一个`else`块和一个或多个`else if`块。这用于检查多个条件。

### `if..else if..else`表达式示例

在这个例子中，我们有一个数字，我们正在检查它是负数，单位数，两位数还是多位数。我们使用`if..else if..else`表达式检查这些多个条件。当条件都不返回`true`时，`else`块内的语句将被执行。

```kotlin
fun main(args: Array<String>) {
    val num = 99
    if(num<0)
        println("Number is Negative")
    else if (num>0 && num<10)
        println("Single digit number")
    else if (num>=10 && num <100)
        println("Double digit number")
    else
        println("Number has 3 or more digits")
}
```

输出：

```kotlin
Double digit number
```

## 4\. Kotlin - 嵌套表达式

当一个表达式存在于另一个表达式主体内时，它被称为表达式的嵌套。例如，如果`if`表达式出现在另一个`if`中，那么它将被称为嵌套`if`表达式。

例如：

```kotlin
fun main(args: Array<String>) {
    val num = 101
    if(num<0)
        println("Negative Number")
    else {
        //Nested expression
        if(num%2 == 0)
            println("Even Number")
        else
            println("Odd Number")
    }

}
```

输出：

```kotlin
Odd Number
```

#### 参考

[Kotlin 官方文档](https://kotlinlang.org/docs/reference/control-flow.html)