嵌套循环
本课属于 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() 会在每行输出后换到下一行。
挑战
中等从输入中读取一个整数 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() 换到下一行
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Kotlin 在线编辑器