![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=1738858876-LHXeVEFFbPXKpVHDYanekOu26wbGj3xm-0-3f88034385e4351ee7837a3d5693d887)
嵌套循环语句,是指一个循环结构的循环体内又包含另一个完整的循环结构。内嵌的循环中还可以嵌套循环,这样就构成了多层嵌套循环。
1. C#中嵌套for循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T110_66852.jpg?sign=1738858876-RWDEmgl83guNToEz8aaQRdhEvwiIJdK0-0-f9771eb05dab63eb869ed8c77933a6f6)
2. C#中嵌套while循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T110_66853.jpg?sign=1738858876-0BNRv64JqKUF0U94tQgIaOOEVx3A1Xam-0-76b0de184af44538c9958d8fb8c2c738)
3. C#中嵌套do…while循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T111_66856.jpg?sign=1738858876-rpYtIHxWUzhoPFpDiNTjV1LpSBQKdfgo-0-305c3f81ba073285d6029f124d7c5fa4)
【例5-12】编写程序,使用嵌套的for循环输出一个由“*”组成的金字塔图形。
(1)在Visual Studio 2017中,新建名称为“Project12”的文件。
(2)在代码编辑区域输入以下代码。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T111_66857.jpg?sign=1738858876-SKsz7ZGALxHUmmpJjtjYKShZr0EA9Ael-0-5a467d79f126ae7340f07f6a87d7e120)
【程序分析】本例演示了嵌套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=1738858876-DyRKh8fDDnsywWMM4TZ9tcsWkMV6x9Xq-0-31fe2d808c772cc66e26824752564cfe)
图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=1738858876-jvjLGfGYCBfbVkFEgGO4groweoEku5xJ-0-5118f665c17c1238884cc9442043dbd4)
【程序分析】本例演示了循环嵌套语句的使用。在代码中,变量x接收用户输入的数值,变量y通过嵌套的for循环计算用户输入值的阶乘,直到输入一个负数为止。
在Visual Studio 2017中的运行结果如图5-21所示。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-P112_16608.jpg?sign=1738858876-DKgHlDg4q1Z64OzwVJxKsdmZp2I7fax4-0-e8d74c4c91f1e84b713692c5dc3caf06)
图5-21 循环嵌套