Kotlin语言基础之流程控制

本文介绍了Kotlin中的流程控制,包括条件表达式If和when的使用,以及For和While循环的细节。强调了when作为多分支条件的灵活性,和在作为表达式时的注意事项。还探讨了Kotlin中创建范围的方式,如区间操作符,为理解循环提供基础。最后,提供了For和While循环的实例,帮助读者掌握Kotlin的控制流基础。
摘要由CSDN通过智能技术生成

与其他编程语言一样,Kotlin 能够根据一段代码是否被评估为真来做出决策。此类代码段称为条件表达式。Kotlin 还能够创建和迭代循环。

条件表达式

Kotlin 提供了用于检查条件表达式的 ifwhen

如果您必须在 ifwhen 之间进行选择,我们建议您使用 when,因为它会带来更强大、更安全的程序。

If

要使用 if,请在括号 () 中添加条件表达式,并在大括号 {} 中添加结果为 true 时要执行的操作:

fun main() {
    val d: Int
    val check = true

    if (check) {
        d = 1
    } else {
        d = 2
    }

    println(d)
    // 1
}

Kotlin 中没有三元操作符 condition ? then : else。 相反,if 可以用作表达式。使用 if 作为表达式时,没有大括号 {}

fun main() {
    val a = 1
    val b = 2

    println(if (a > b) a else b)
    // 返回值:2
}

when

当你有一个具有多个分支的条件表达式时使用。when 可以用作语句或表达式。

下面是使用 when 作为语句的示例:

  • 将条件表达式放在括号 () 内,将要执行的操作放在大括号 {} 内。
  • 在每个分支中使用 -> 将每个条件与每个操作(action)分开。
fun main() {
    val obj = "Hello"

    when (obj) {
        "1" -> println("One")
        "Hello" -> println("Greeting")
        else -> println("Unknown")
    }
}

请注意,将按顺序检查所有分支条件,直到满足其中一个条件。因此,只执行第一个合适的分支。

下面是将 when 用作表达式的示例。立即将 when 语法分配给变量。

fun main() {
    val obj = "Hello"

    val result = when (obj) {
        "1" -> "One"
        "Hello" -> "Greeting"
        else -> "Unknown"
    }

    println(result)
    // Greeting
}

如果将 when 用作表达式,则 else 分支是必需的,除非编译器可以检测到分支条件涵盖了所有可能的情况。

前面的示例表明,when 对于匹配变量很有用。当您需要检查布尔表达式链时,when 也很有用:

fun main() {
    val temp = 18

    val description = when {
        // 如果 `temp < 0` 为 true,则将 description 设置为 "very cold"
        temp < 0 -> "very cold"
        // 如果 `temp < 10` 为 true,则将 description 设置为 "a bit cold"
        temp < 10 -> "a bit cold"
        // 如果 `temp < 20` 为 true,则将 description 设置为 "warm"
        temp < 20 -> "warm"
        // 如果不满足先前条件,则将 description 设置为 "hot"
        else -> "hot"
    }

    println(description)
}

范围

在讨论循环之前,了解如何为循环构造要迭代的范围是很有用的。

在 Kotlin 中创建范围的最常见方法是使用 .. 操作符。例如,1..4 等价于 1、2、3、4

若要声明不包含结束值的范围,请使用 ..< 操作员。例如,1..<4 等价于 1、2、3

若要以相反的顺序声明范围,请使用 downTo。例如,4 downTo 1 等于 4、3、2、1

若要声明在非 1 的步长中递增的范围,请使用 step 和所需的增量值。例如,1..5 step 2 等效于 1、3、5

您也可以对 Char 范围执行相同的操作:

  • 'a'..'d' 等同于 'a', 'b', 'c', 'd'
  • 'z' downTo 's' step 2 等同于 'z'、'x'、'v'、't'

循环

编程中最常见的两个循环结构是 for 和 while。使用 for 循环访问一系列值并执行操作。使用 while 继续操作,直到满足特定条件。

For 循环

利用您对范围的新知识,您可以创建一个 for 循环,该循环遍历数字 1 到 5 并每次打印数字。

将迭代器和范围放在括号 () 内,并带有关键字 in。在大括号 {} 中添加要完成的操作:

fun main() {
    for (number in 1..5) {
        // number 是迭代器,1..5 是范围
        print(number)
    }
    // 12345
}

集合也可以通过循环进行迭代:

fun main() {
    val cakes = listOf("carrot", "cheese", "chocolate")

    for (cake in cakes) {
        println("好吃,这是 $cake 蛋糕!")
    }
    // 好吃,这是 carrot 蛋糕!
    // 好吃,这是 cheese 蛋糕!
    // 好吃,这是 chocolate 蛋糕!
}

while 循环

while 可以通过两种方式使用:

  • 在条件表达式为 true 时执行代码块。(while)
  • 首先执行代码块,然后检查条件表达式。(do-while)

在第一种使用方式(while):

  • 在括号 () 内声明 while 循环继续下去的条件表达式。
  • 在大括号 {} 中添加要完成的操作。

以下示例使用增量运算符 ++ 递增 cakesEaten 变量的值。

fun main() {
    var cakesEaten  = 0
    while (cakesEaten < 3) {
        println("Eat a cake")
        cakesEaten++
    }
    // Eat a cake
    // Eat a cake
    // Eat a cake
}

第二种使用方式(do-while)

  • 在小括号 () 内声明让 while 循环继续下去的条件表达式。
  • 使用关键字 do 在大括号 {} 中定义你想要完成的操作。
fun main() {
    var cakesEaten = 0
    var cakesBaked = 0
    while (cakesEaten < 3) {
        println("吃一个蛋糕")
        cakesEaten++
    }

    do {
        println("烤一个蛋糕")
        cakesBaked++
    } while (cakesBaked < cakesEaten)
//    吃一个蛋糕
//    吃一个蛋糕
//    吃一个蛋糕
//    烤一个蛋糕
//    烤一个蛋糕
//    烤一个蛋糕
}

有关条件表达式和循环的更多信息和示例,请参阅条件和循环

现在您已经了解了 Kotlin 控制流的基础知识,是时候学习如何编写自己的函数了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值