![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=1738895885-dKUIONKMuxYoRNHH7If4H1XCt5Xewl2E-0-bddc63a71c38e97b4a4fbc9a56938ff5)
嵌套循环语句,是指一个循环结构的循环体内又包含另一个完整的循环结构。内嵌的循环中还可以嵌套循环,这样就构成了多层嵌套循环。
1. C#中嵌套for循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T110_66852.jpg?sign=1738895885-QynFG5ulznKt8a5Xudr6IsCeTkK3Uft6-0-1153accf1e7fad7967ad1446e50d64b4)
2. C#中嵌套while循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T110_66853.jpg?sign=1738895885-bEVnmGEdL5yNn0eOqj4udrXV71nXEEz4-0-f70b323959ed2329a3065bf5dd04a930)
3. C#中嵌套do…while循环语句
其语法格式如下:
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T111_66856.jpg?sign=1738895885-PG0kdhNMGCzVNLkIfKDzoD6igD1S8mHs-0-985620d805af9cbadd4616c756d7d43d)
【例5-12】编写程序,使用嵌套的for循环输出一个由“*”组成的金字塔图形。
(1)在Visual Studio 2017中,新建名称为“Project12”的文件。
(2)在代码编辑区域输入以下代码。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-T111_66857.jpg?sign=1738895885-UBkIrhDMPf6PKYKNlAyiMiXkcPwgqO8E-0-42bc719e7d0d26ee0a35371b8a96824c)
【程序分析】本例演示了嵌套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=1738895885-nmXj8GXFvqlfaoBESHAFrzfR0m3pdxmR-0-bb5478f73f1f62fbda7866d2641d5fa1)
图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=1738895885-YqOx26lwCHts45qRTyd4rZ6GB6m3THVN-0-f73f3b4a4bece39f88fa82ffb44a00ec)
【程序分析】本例演示了循环嵌套语句的使用。在代码中,变量x接收用户输入的数值,变量y通过嵌套的for循环计算用户输入值的阶乘,直到输入一个负数为止。
在Visual Studio 2017中的运行结果如图5-21所示。
![](https://epubservercos.yuewen.com/938BD7/15477656705638906/epubprivate/OEBPS/Images/Figure-P112_16608.jpg?sign=1738895885-vPbIN9KUs6LDTXQghOY2itnlGdlYvj3e-0-356aa6213521c2779eda3470a4073f5b)
图5-21 循环嵌套