C#循环结构之嵌套循环
在一个循环体中包含另一个循环,称为“嵌套循环”。当2个循环嵌套的时候,外层循环体执行一次,内层循环体执行 n 次( n 是内层循环的次数)。请看下面的例子:
运行结果:
比较代码和运行结果,我们发现,内层循环体执行 3 次,外层循环体执行 1 次。这就有点像钟表上的时针和分针——时针走一格,分针走一圈。
下面一段代码打印了一个矩形:
运行效果:
请思考一下,哪一个变量决定了每一行的循环次数, x 还是 y ?
任务
右边代码打印了一个矩形,请修改代码,使它打印三角形:
using System; using System.Collections.Generic; using System.Text; namespace Test { class Program { static void Main(string[] args) { for (int y = 1; y <= 7; y++) { for (int x = 1; x <= 7; x++) { Console.Write(x); } Console.WriteLine();//换行 } } } }
不会了怎么办
其实,决定每一行打印个字符的变量就是x,当内层循环条件为 x<=7 时,每一行固定打印 7 个字符;如果改为 x<=y ,那么打印的字符数就会随着行数( y )增长。
正确的解法:把第 13 行代码改为:
for (int x = 1; x <= y; x++)
其实只要找对x与y的关系即可。
第一行内外循环一次,当x=1时,y=1;
第二行,第二次外循环开始,内循环第一次,x=1,x<y;内循环第二次,x=2,x=y.
第三行,第三次外循环开始,内循环第一次,x=1,x<y;内循环第二次,x=2,x<y;内循环第三次 ,x=3,x=y.
。。。。。。
因此可以看出x<=y.故只需更改第13行代码即可。如下:
for (int x = 1; x <= 7; x++)
==> for (int x = 1; x <= y; x++)
完美!