6.10 嵌套循环
嵌套循环(nested loop)指在一个循环内包含另一个循环。嵌套循环常用于按行和列显示数据,也就是说,一个循环处理一行中的所有
列,另一个循环处理所有的行。
/* rows1.c -- uses nested loops */
#include <stdio.h>
#define ROWS 6
#define CHARS 10
int main(void)
{
int row;
char ch;
for (row = 0; row < ROWS; row++) /* line 10 */
{
for (ch = 'A'; ch < ('A' + CHARS); ch++) /* line 12 */
printf("%c", ch);
printf("\n");
}
return 0;
}
/* 输出:
*/
外层循环(outer loop)。外层循环从row为0开始循环,到row为6时结束。
内层循环(inner loop)。内存循环从ch为'A'开始循环,到ch为'A'+CHARS时结束。
注意,嵌套循环中的内层循环在每次外层循环迭代时都执行完所有的循环。
6.10.2 嵌套变式
可以通过外层循环控制内层循环,在每次外层循环迭代时内存循环完成不同的任务。
内层循环开始打印的字符取决于外层循环的迭代次数。
// rows2.c -- using dependent nested loops
#include <stdio.h>
int main(void)
{
const int ROWS = 6;
const int CHARS = 6;
int row;
char ch;
for (row = 0; row < ROWS; row++)
{
for (ch = ('A' + row); ch < ('A' + CHARS); ch++)
printf("%c", ch);
printf("\n");
}
return 0;
}
/* 输出:
*/