循环中的范围
使用 to 和 until 进行迭代。
循环中的范围 是 CoddyKit 上的免费 Scala for Backend Engineering & Functional Programming 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Scala for Backend Engineering & Functional Programming 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Scala for Backend Engineering & Functional Programming 课程共包含 4 节课。
使用范围循环
范围和循环是天然的组合。范围可以为您提供整齐的数字序列以供迭代。
本课将展示如何使用范围驱动 for 循环、筛选值并构建结果。
基本 for 循环
经典的计数循环会将范围与 for 结合使用。
变量 i 会依次取得范围中的每个值。这里会将 1 到 5 分别打印在不同的行上。
for (i <- 1 to 5) println(i)在循环中使用 until
对数组位置这类内容进行索引时,until 通常是合适的选择。
它会在上限前一个位置停止,正好符合从零开始的索引方式。
for (i <- 0 until 3) println(s"index $i")在循环中设置步长
将 by 与循环结合使用,可以跳过某些值。
这里每次以 2 为步长,从 0 到 10 打印偶数。
for (i <- 0 to 10 by 2) println(i)向后计数
负步长会使循环反向运行。
这是倒数的最简单方式,这里会从 3 数到 1。
for (i <- 3 to 1 by -1) println(i)累加总和
使用范围进行循环非常适合累加总数。
这里使用可变变量,将从 1 到 5 的每个数字加入持续累加的总数中。
var total = 0
for (i <- 1 to 5) total += i
println(total)使用守卫进行筛选
for 循环可以包含一个守卫条件,也就是一个会跳过不需要值的 if 条件。
这里,只有偶数通过守卫条件并被打印出来。
for (i <- 1 to 10 if i % 2 == 0) println(i)使用 for 构建列表
添加 yield,即可将循环转换为构建新集合的表达式。
这样会生成一个平方数序列,而不会打印任何内容。
val squares = for (i <- 1 to 5) yield i * i
println(squares.toList)嵌套循环
您可以在一个 for 中列出两个范围,从而创建嵌套循环。
这会将每一行与每一列配对,打印出一个小型网格中的所有组合。
for (r <- 1 to 2; c <- 1 to 2) println(s"($r,$c)")使用 foreach 循环
范围还提供了 foreach,作为 for 的另一种写法。
它会对每个元素运行一个函数。许多 Scala 开发者更喜欢使用 for,因为它更易读,但两者都可以实现相同的功能。
(1 to 3).foreach(i => println(i))为集合建立索引
一种常见模式是使用 indices,按位置遍历集合。
indices 范围与列表中的有效位置相对应,因此每个索引都可以安全使用。
val names = List("Ann", "Ben", "Cy")
for (i <- names.indices) println(s"$i: ${names(i)}")快速检查
测试您对循环中范围的理解。
回顾
范围是循环的基础:使用 for (i <- a to b) 进行迭代,使用 by 设置步长,使用负步长进行倒计数,并使用守卫条件进行筛选。
添加 yield 来构建新集合,嵌套范围来创建网格,并使用 indices 按位置遍历集合。您已经完成了本课程。
常见问题解答
「循环中的范围」课时是免费的吗?
是的 — 「循环中的范围」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Scala for Backend Engineering & Functional Programming 课程的其余内容,请升级到 CoddyKit PRO。 Scala for Backend Engineering & Functional Programming 课程共包含 4 节课。
「循环中的范围」这节课中我会学到什么?
使用 to 和 until 进行迭代。 你通过在浏览器中直接运行的动手代码来练习 Scala for Backend Engineering & Functional Programming,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Scala for Backend Engineering & Functional Programming 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Scala for Backend Engineering & Functional Programming 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「循环中的范围」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Scala for Backend Engineering & Functional Programming 课中编写并运行代码吗?
能。每节 Scala for Backend Engineering & Functional Programming 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。