C#循环结构之嵌套循环

C#循环结构之嵌套循环

在一个循环体中包含另一个循环,称为“嵌套循环”。当2个循环嵌套的时候,外层循环体执行一次,内层循环体执行 n 次( n 是内层循环的次数)。请看下面的例子:

C#循环结构之嵌套循环_第1张图片

运行结果:

C#循环结构之嵌套循环_第2张图片

比较代码和运行结果,我们发现,内层循环体执行 3 次,外层循环体执行 1 次。这就有点像钟表上的时针和分针——时针走一格,分针走一圈。

下面一段代码打印了一个矩形:

C#循环结构之嵌套循环_第3张图片

运行效果:

C#循环结构之嵌套循环_第4张图片

思考一下,哪一个变量决定了每一行的循环次数, x 还是 y ?

任务

右边代码打印了一个矩形,请修改代码,使它打印三角形:

C#循环结构之嵌套循环_第5张图片

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

第三行,第三次外循环开始,内循环第一次,x=1,x

。。。。。。

因此可以看出x<=y.故只需更改第13行代码即可。如下:

for (int x = 1; x <= 7; x++)==> for (int x = 1; x <= y; x++)

完美!

你可能感兴趣的:(C#,c#)