Menu
CoddyTech

嵌套循环

本课属于 Coddy Kotlin 学习旅程的“基础知识”单元。第 52 课,共 93 课。

你可以在一个循环中再放入另一个循环,创建嵌套循环。外层循环每迭代一次,内层循环就会完整运行一遍。

val rows = 2
val cols = 3
for (i in 1..rows) {
    for (j in 1..cols) {
        println("i=$i, j=$j")
    }
}
// 输出:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3

当 i 为 1 时,内层循环运行 cols 次(j 从 1 到 3)。然后 i 变为 2,内层循环重新开始,j 再次从 1 到 3。这样总共循环 2 × 3 = 6 次。rows 和 cols 不会改变:它们只用于告诉循环何时停止。

嵌套循环通常用于创建图案或处理类似网格的结构:

for (row in 1..3) {
    for (col in 1..row) {
        print("*")
    }
    println()
}
// 输出:
// *
// **
// ***

这里,内层循环的范围取决于外层循环的变量,从而形成三角形图案。print() 函数输出时不会换行,而 println() 会在每行输出后换到下一行。

challenge icon

挑战

中等

从输入中读取一个整数 n。使用嵌套循环,打印数字 1 到 n 的乘法表。

对于从 1 到 n 的每一行 i,打印乘积 i * 1、i * 2、……、i * n,各项之间用空格分隔,并在末尾换行。

例如,如果输入是 3,输出应为:

1 2 3
2 4 6
3 6 9

如果输入是 4,输出应为:

1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16

使用 print() 在同一行输出值,并在值后添加空格;使用 println() 移到下一行。

为每个循环使用一个新的计数器(例如,用 i 表示行,用 j 表示列),并将它们都与 n 比较。不要更改 n 本身:每一行都需要再次使用它。

亲手试试

fun main() {
    // 读取输入
    val n = readLine()!!.toInt()
    
    // TODO: 在下方编写你的代码
    // 使用嵌套循环打印乘法表
    // 用 print() 输出同一行的值,并用空格隔开
    // 用 println() 换到下一行
    
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Kotlin 在线编辑器