0Pricing
Kotlin Academy · 课时

Step 与 downTo

控制递进过程

Step 与 downTo 是 CoddyKit 上的免费 Kotlin Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kotlin Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kotlin Academy 课程共包含 4 节课。

控制步进序列

普通范围按递增顺序以一为步长前进。Kotlin 允许您同时改变步长和方向。

使用 step 和 downTo 可以生成步进序列。

步长函数

step 会改变每次增加的数值。

0..10 step 2 会生成 0、2、4、6、8、10。

fun main() {
    val progression = 0..10 step 2
    println(progression.toList())
}

步长无法到达终点

使用某个步长时,可能无法正好到达上限。步进序列会在范围内的最后一个值处停止。

1..10 step 3 会在 10 处结束吗?不会,它会在能够到达的最大值处结束。

fun main() {
    val progression = 1..10 step 3
    println(progression.toList())
}

downTo 函数

downTo 会构造一个递减的步进序列。

5 downTo 1 会生成 5、4、3、2、1。

fun main() {
    val countdown = 5 downTo 1
    println(countdown.toList())
}

为什么不能直接反转范围

像 5..1 这样的普通范围是空的,因为起点大于终点。

要进行倒序计数,必须使用 downTo。

fun main() {
    println((5..1).toList())   // empty
    println((5 downTo 1).toList())
}

组合 downTo 与步长

递减的步进序列同样可以添加 step。

步长始终是正数,方向由 downTo 处理。

fun main() {
    val progression = 10 downTo 0 step 2
    println(progression.toList())
}

步长必须为正

即使进行倒序计数,步长值也必须为正数。步长为零或负数会抛出异常。

方向由 .. 和 downTo 决定,而不是由步长的正负号决定。

fun main() {
    try {
        val bad = 0..10 step 0
        println(bad.toList())
    } catch (e: IllegalArgumentException) {
        println("step must be positive")
    }
}

步进序列可迭代

步进序列可以直接进行循环遍历。这是最常见的用法。

它会依次生成每个值,而不会创建列表。

fun main() {
    for (i in 10 downTo 1 step 3) {
        print(i.toString() + " ")
    }
    println()
}

查看步进序列

步进序列知道自己的 first、last 和 step 值。

请注意,当步长跳过请求的终点时,last 可能与请求的终点不同。

fun main() {
    val p = 1..10 step 3
    println(p.first)
    println(p.last)
    println(p.step)
}

带步长的排除上限范围

until 也接受步长,从而可以在排除上限的同时自定义增量。

这对于按间隔采样索引非常方便。

fun main() {
    val p = 0 until 10 step 2
    println(p.toList())
}

综合运用

步进序列让您能够完全控制迭代:

  • step 设置增量
  • downTo 进行倒序计数
  • 步长始终为正数
  • 它们可以组合使用,并且可以直接迭代
fun main() {
    for (i in 100 downTo 0 step 25) {
        print(i.toString() + " ")
    }
    println()
}

快速检查

请检验您对步长和 downTo 的理解。

回顾

您已经学习了如何控制步进序列:

  • step 改变增量
  • downTo 生成递减序列
  • 步长值始终为正数
  • 它们可以组合使用并进行迭代

接下来,您将使用范围编写简洁的循环。

常见问题解答

「Step 与 downTo」课时是免费的吗?

是的 — 「Step 与 downTo」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kotlin Academy 课程的其余内容,请升级到 CoddyKit PRO。 Kotlin Academy 课程共包含 4 节课。

「Step 与 downTo」这节课中我会学到什么?

控制递进过程 你通过在浏览器中直接运行的动手代码来练习 Kotlin Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Kotlin Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Kotlin Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「Step 与 downTo」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Kotlin Academy 课中编写并运行代码吗?

能。每节 Kotlin Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 范围运算符
  2. Step 与 downTo
  3. 循环中的范围
  4. 字符范围与自定义范围
← 返回 Kotlin Academy