![C# 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/707/27111707/b_27111707.jpg)
5.4 嵌套循环语句
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-P110_16193.jpg?sign=1739316827-5zFwhliAFQf7w3kTecKcm3OqqAUAk1Dm-0-d33b18f617ed424a593be587085939ec)
嵌套循环语句,是指一个循环结构的循环体内又包含另一个完整的循环结构。内嵌的循环中还可以嵌套循环,这样就构成了多层嵌套循环。
1. C#中嵌套for循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T110_66852.jpg?sign=1739316827-h3gE4lcRBllCSyr59YRCDDYn8D6n5dDm-0-783485e5599fb44de8e3163983058f1d)
2. C#中嵌套while循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T110_66853.jpg?sign=1739316827-wRm3TNH2n4HYUIr8MBat7mQsF6H87B0j-0-0f58fd5df749c73785c4315a00545d1d)
3. C#中嵌套do…while循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T111_66856.jpg?sign=1739316827-T7anTlXbn71GF3PsWXheyuaHGEXz7BUc-0-64682363ffb606d125554f2ba755a665)
【例5-12】编写程序,使用嵌套的for循环输出一个由“*”组成的金字塔图形。
(1)在Visual Studio 2017中,新建名称为“Project12”的文件。
(2)在代码编辑区域输入以下代码。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T111_66857.jpg?sign=1739316827-THbr8oZycpNUTHmdn7lfa6c9zvti9fMG-0-121a84d2370f79c61153e3aa1ad53eae)
【程序分析】本例演示了嵌套for循环的使用。在代码中利用双重for循环,外层循环通过变量x控制行数。内层有两个for循环,第一个for循环通过变量y控制每行前面打印的空格数,每降低一行就会少一个空格,所以与行之间的关系用y=n-x表示;第二个for循环通过变量z控制星号的个数,每行的星号数是不同的,与行的关系可以用公式z=2*x-1表示。
在Visual Studio 2017中的运行结果如图5-20所示。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-P111_16451.jpg?sign=1739316827-eJAOEJn2PhEaTnhbslYBSu32urKe6aWe-0-d3cc07cec55414cd417834eb8f04a86b)
图5-20 嵌套for循环
关于嵌套循环有一点值得注意,用户可以在任何类型的循环内嵌套其他任何类型的循环。例如,一个for循环可以嵌套在一个while循环内,反之亦然。
【例5-13】编写程序,接收用户输入的一个正整数,然后程序会计算这个数的阶乘并输出,接着用户可以再输入另一个整数计算它的阶乘,直到输入一个负数时,程序终止。
(1)在Visual Studio 2017中,新建名称为“Project13”的文件。
(2)在代码编辑区域输入以下代码。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T112_66859.jpg?sign=1739316827-mtThMKobirpPC9BknLQpXnf71mJKAXWQ-0-42dce30523a9c8f9072c8f97ca9f6b66)
【程序分析】本例演示了循环嵌套语句的使用。在代码中,变量x接收用户输入的数值,变量y通过嵌套的for循环计算用户输入值的阶乘,直到输入一个负数为止。
在Visual Studio 2017中的运行结果如图5-21所示。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-P112_16608.jpg?sign=1739316827-T0EdAQXHzO4ZNQSCPUDLQt0pyIGnMOpU-0-c63903592d248b166763ae55e10cfad6)
图5-21 循环嵌套