Android学习(四)-Kotlin编程语言-for循环

在编程中,熟悉 Java 的开发者应该知道,Java 循环语句:for 循环。Kotlin 也提供循环语句,但 for 循环在 Kotlin 中进行了大幅改进,重点学习 Kotlin 中增强的 for-in 循环。

Kotlin 中的 for-in 循环
区间概念

在 Kotlin 中,区间是一种非常有用的特性。你可以使用以下语法来创建一个区间:

Kotlin 复制代码
val range = 0..10

这里的 0..10 表示从 0 到 10 的闭区间,即包含 0 和 10。用数学符号表示为 [0, 10]

  • 双端闭区间 :使用 .. 创建,例如 0..10
  • 左闭右开区间 :使用 until 创建,例如 0 until 10,表示 [0, 10)
遍历区间

我们可以使用 for-in 循环来遍历区间中的每个元素。例如,在 main 函数中编写如下代码:

Kotlin 复制代码
fun main() {
    for (i in 0..10) {
        println(i)
    }
}

这段代码会遍历从 0 到 10 的所有整数,并逐个打印出来。

左闭右开区间

有时候,我们需要使用左闭右开区间,特别是在处理数组下标时。可以使用 until 关键字来创建这样的区间:

Kotlin 复制代码
fun main() {
    for (i in 0 until 10) {
        println(i)
    }
}

这里 0 until 10 表示从 0 到 9 的区间,不会包括 10。

步长控制

默认情况下,for-in 循环每次递增 1。如果你需要改变步长,可以使用 step 关键字:

Kotlin 复制代码
fun main() {
    for (i in 0 until 10 step 2) {
        println(i)
    }
}

上述代码会从 0 开始,每次递增 2,输出结果为 0, 2, 4, 6, 8。

降序遍历

如果你想创建一个降序区间,可以使用 downTo 关键字:

Kotlin 复制代码
fun main() {
    for (i in 10 downTo 1) {
        println(i)
    }
}

这段代码会从 10 开始,每次递减 1,输出结果为 10, 9, 8, ..., 1。

结合 step 使用

降序区间也可以结合 step 关键字使用,以实现更复杂的循环逻辑:

Kotlin 复制代码
fun main() {
    for (i in 10 downTo 1 step 2) {
        println(i)
    }
}

这段代码会从 10 开始,每次递减 2,输出结果为 10, 8, 6, 4, 2。

遍历数组和集合

除了遍历区间,for-in 循环还可以用来遍历数组和集合。例如:

Kotlin 复制代码
fun main() {
    val names = arrayOf("Tom", "Jim", "Jack", "Lily")
    for (name in names) {
        println(name)
    }
}

这段代码会遍历数组 names 中的每个元素,并逐个打印出来。

总结

Kotlin 的 for-in 循环虽然不如传统的 for-i 循环灵活,但更加简洁易用,并且能够覆盖大部分常见的循环场景。通过区间、步长和降序等功能,for-in 循环可以实现各种复杂的循环逻辑。希望这些内容能帮助你更好地理解和使用 Kotlin 中的循环语句!

相关推荐
alexhilton9 小时前
面向开发者的系统设计:像建筑师一样思考
android·kotlin·android jetpack
CYRUS_STUDIO18 小时前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
CYRUS_STUDIO18 小时前
Frida 实战:Android JNI 数组 (jobjectArray) 操作全流程解析
android·逆向
用户0921 小时前
Gradle Cache Entries 深度探索
android·java·kotlin
循环不息优化不止1 天前
安卓 View 绘制机制深度解析
android
叽哥1 天前
Kotlin学习第 9 课:Kotlin 实战应用:从案例到项目
android·java·kotlin
雨白1 天前
Java 线程通信基础:interrupt、wait 和 notifyAll 详解
android·java
诺诺Okami2 天前
Android Framework-Launcher-UI和组件
android
潘潘潘2 天前
Android线程间通信机制Handler介绍
android
潘潘潘2 天前
Android动态链接库So的加载
android