Menu
CoddyTech

嵌套循环

本课属于 Coddy C# 学习旅程的“基础知识”单元。第 46 课,共 69 课。

嵌套循环就是一个循环位于另一个循环内部。外层循环每迭代一次,内层循环就会完成所有迭代。

一个很好的类比是时钟:每过一小时(外层循环),分针(内层循环)都必须走完完整的 60 分钟周期。

嵌套循环示例:

int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
	for (int y = 0; y < cols; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// 这段代码会输出:
// 0 0
// 0 1
// 1 0
// 1 1

外层循环(x)运行 rows 次,而每次运行时,内层循环(y)都会运行 cols 次,这意味着内层循环的循环体总共会执行 2 × 2 = 4 次。每个循环都有自己的计数器:每次外层循环运行时,y 都会重新从 0 开始,而 rows 和 cols 保持不变,只用来告诉循环何时停止。

在使用嵌套循环时,你可能还需要用到 Console.Write()。与 Console.WriteLine() 不同,后者会打印文本并换到新的一行,而 Console.Write() 会打印文本,但不会在末尾添加换行符。这样你就能在同一行逐步生成输出:

for (int y = 0; y < 4; y++) {
	Console.Write("* ");
}
Console.WriteLine();

// 这将输出:
// * * * * 

这里,Console.Write() 会一直在同一行打印,而末尾的 Console.WriteLine() 会换到下一行。

challenge icon

挑战

入门

编写一个程序,打印由星号(*)组成的矩形,矩形的宽度和高度由给定值决定。

输入:两个整数:width 和 height

例如:

如果 width = 5 且 height = 3,输出应为:

*****
*****
*****

如果 width = 4 且 height = 6,输出应为:

****
****
****
****
****
****

每个循环都使用一个新的计数器(例如,用 i 计数行,用 j 计数每行中的星号),并将它与 height 或 width 进行比较。不要更改 height 和 width 本身:每一行都需要再次使用 width。

亲手试试

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // 在下方编写你的代码

    }
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: C# 在线编译器