当前位置:嗨网首页>书籍在线阅读

26-嵌套变式

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.10.2 嵌套变式

上一个实例中,内层循环和外层循环所做的事情相同。可以通过外层循环控制内层循环,在每次外层循环迭代时内层循环完成不同的任务。把程序清单6.17稍微修改后,如程序清单6.18所示。内层循环开始打印的字符取决于外层循环的迭代次数。该程序的第1行使用了新的注释风格,而且用const关键字代替#define,有助于读者熟悉这两种方法。

程序清单6.18  rows2.c 程序

// rows2.c -- 依赖外部循环的嵌套循环
#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;
}

该程序的输出如下:

ABCDEF
BCDEF
CDEF
DEF
EF
F

因为每次迭代都要把 row 的值与 'A' 相加,所以 ch 在每一行都被初始化为不同的字符。然而,测试条件并没有改变,所以每行依然是以 F 结尾,这使得每一行打印的字符都比上一行少一个。