程序清单6.17 rows1.c
/*roww1.c --使用嵌套循环*/#include #define ROWS 6#define CHARS 10int main (void){ int row; char ch; for(row=0;row
6.10.1 程序讨论
开始于第10行的循环被称为外部循环,而开始于第12行的循环称为内部循环,因为它位于另一个循环的内部。外部循环开始时,ROW的值为0,当ROW的值达到6时结束。因此外部循环要执行6次,ROw的值从0变到5.每次循环的第一个语句都是内部的for循环。这个循环执行10次,在同一行上打印从A到J的字符。外部循环的第二个语句是printf("\n");。这个语句开始一个新行,这们内部循环下次运行的时候,输出就会在一个新的行上。
请注意在嵌套循环中,内部循环在外部循环的每次单独循环中都完全执行它的所有循环。
6.10.2 嵌套变化
在上一个例子中,内部循环在外部循环的每个周期中做着同样的事情。通过使内部循环的一部分依赖于外部循环,可以使内部循环在每个周期中的表现不同。
程序清单 6.18 rows2.c
//rows2.c--使内部循环依赖于外部循环的嵌套循环#includeint main (void){ const int ROWS=6; const int CHARS=6; int row; char ch; for(row=0;row
因为在外部循环的每个周期中都要把row的值加到‘A’上,所以ch在每一行中都被初始化为字母表中后面的字符。但是判断条件并没有发生变化,所以每一行都依然是以F结尾。这导致在每一个新行都打印更少的字符 。