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 中的循环语句!

相关推荐
私人珍藏库5 小时前
【Android】聆听岛[特殊字符]聚合全网音乐[特殊字符]免费听歌下载神器[特殊字符] 聚合音乐平台|无损母带下载|歌词封面同步|免费无广告听歌工具
android·人工智能·工具·软件·多功能
YF02116 小时前
Android触摸机制与自定义 View 实战
android·app
我命由我123457 小时前
程序员的心理学学习笔记 - 空杯心态
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
Dabei7 小时前
Android TV 焦点处理详解:遥控器与空鼠
android·前端
stm32 菜鸟7 小时前
nucleo-f411re学习记录-13,flash的操作
学习
晓梦林7 小时前
3170靶场学习笔记
笔记·学习
悠哉清闲7 小时前
裁剪SurfaceView
android
常利兵7 小时前
Android字体字重设置全攻略:XML黑科技+Kotlin动态实现,告别.ttf臃肿
android·xml·科技
ErizJ8 小时前
Redis|学习笔记
redis·笔记·学习
加油20198 小时前
方法论:如何系统性的学习?
学习·学习方法·方法论