# Kotlin 控制流程

> 原文： [http://zetcode.com/kotlin/controlflow/](http://zetcode.com/kotlin/controlflow/)

Kotlin 控制流教程展示了如何使用`if`，`when`，`while`和`for`在 Kotlin 程序中进行控制流。

Kotlin 是在 Java 虚拟机上运行的静态类型的编程语言。

Kotlin 由 JetBrains 创建。 Kotlin 是一种面向对象的函数式编程语言。 Kotlin 被设计为一种务实，简洁，安全且可互操作的编程语言。

## Kotlin `if`条件

`if`关键字用于创建简单的条件测试。 可以与`else`关键字结合使用。

`kotlin_if.kt`

```kt
package com.zetcode

fun main() {

    print("Enter your age: ")

    val s_age: String? = readLine()

    if (s_age!!.isEmpty()) return

    val age:Int = s_age.toInt()

    if (age > 18) {

        println("You can obtain a driving licence")
    } else {

        println("You cannot obtain a driving licence")
    }
}

```

在示例中，我们提示输入用户的年龄。 我们读取该值，将其转换为整数，然后存储在变量中。

```kt
if (age > 18) {

    println("You can obtain a driving licence")
} else {

    println("You cannot obtain a driving licence")
}

```

此条件测试年龄是否大于 18 岁。

## Kotlin

可以使用`if else if`语法创建条件的多个分支。

`ifelseif.kt`

```kt
package com.zetcode

fun main() {

    val a = 34
    val b = 43

    if (a == b) {

        println("$a and $b are equal")
    } else if (a < b) {

        println("$a is less than $b")
    } else {

        println("$b is less than $a")
    }
}

```

在示例中，我们使用`if else if`来确定两个值是否相等或更大或更小。

## Kotlin `if`表达式

Kotlin 的`if`是一个表达式，即它返回一个值。

`if_expression.kt`

```kt
package com.zetcode

fun main() {

    val a = 34
    val b = 43

    val max = if (a > b) a else b

    println("max of $a and $b is $max")
}

```

该示例使用`if`表达式返回两个值中的最大值。

## `when`表达式

Kotlin 的`when`表达式用于评估多个条件。 它是 Java `switch`语句的更强大版本。

`when`关键字将其参数顺序与所有分支匹配，直到满足某些分支条件为止。 它既可以用作表达式也可以用作语句。

`when_expression.kt`

```kt
package com.zetcode

import java.util.Random

fun main() {

    val r:Int = Random().nextInt(10) - 5

    when {
        r < 0 -> println("negative value")
        r == 0 -> println("zero")
        r > 0 -> println("positive value")
    }
}

```

在示例中，我们生成一个随机数。 基于随机值，我们将消息打印到控制台。

## Kotlin `while`循环

`while`关键字用于创建循环。 它运行直到满足给定条件。

`while_loop.kt`

```kt
package com.zetcode

fun main() {

    var i:Int = 0

    while(i < 10) {

        i++
        println("i is $i")
    }

    println(i)
}

```

该示例使用`while`循环从一到十打印值。

```kt
while(i < 10) {

```

只要`i`变量小于 10，就一直在运行`while`条件。

## Kotlin `for`循环

使用 Kotlin 的`for`循环，我们可以创建比`while`更容易创建的循环。

`for_loop.kt`

```kt
package com.zetcode

fun main() {

    val seasons = arrayOf("Spring", "Summer", "Autumn", "Winter")

    for (season in seasons) {

        println(season)
    }

    for (i in 1..15) println(i)
}

```

在示例中，我们使用`for`关键字对字符串数组和整数范围进行迭代。

在本教程中，我们介绍了 Kotlin 中的控制流。 您可能也对相关教程感兴趣： [Kotlin 字符串教程](/kotlin/strings/)， [Kotlin 数组教程](/kotlin/arrays/)或列出[所有 Kotlin 教程](/all/#kotlin)。