scala中双层for循环
时间: 2025-04-28 13:28:10 浏览: 33
Scala 中的双层 `for` 循环用于嵌套迭代操作,可以让你在一个循环体内再包含另一个循环体。这使得你可以对两个集合或者其他可遍历的对象进行组合处理。
### 双层 for 循环的基本结构
```scala
for (i <- collection1) {
for (j <- collection2) {
// 对 i 和 j 进行操作
}
}
```
这里有一个具体的例子:
#### 示例:打印乘法表
假设我们想要创建一个简单的9x9乘法表:
```scala
object MultiplicationTable extends App {
val size = 9
for (i <- 1 to size) { // 外层循环控制行数
for (j <- 1 to size) { // 内层循环控制列数
print(f"$i * $j = ${i * j}%4d") // 格式化输出当前计算结果
if(j != size){
print(" | ") // 使用分隔符区分各单元格内容
}
}
println() // 换到下一行
}
}
```
此段代码将生成如下形式的结果:
```
1 * 1 = 1 | 1 * 2 = 2 | ... | 1 * 9 = 9 |
2 * 1 = 2 | 2 * 2 = 4 | ... | 2 * 9 = 18 |
...
9 * 1 = 9 | 9 * 2 = 18 | ... | 9 * 9 = 81 |
```
在上面的例子中,外层循环负责管理行的变化,而内层循环则逐项列出每一行的具体元素。当所有的内部循环结束之后才会转向下一个外部循环变量值继续执行新的轮次直到完成所有任务.
除了上述基本用法之外,在 Scala 的 `for` 表达式里还可以结合过滤条件、yield 关键字等特性来做更复杂的数据变换和收集工作.
阅读全文