学科分类
目录
C语言

循环嵌套

有时为了解决一个较为复杂的问题,需要在一个循环中再定义一个循环,这样的方式被称作循环嵌套。在C语言中,while、do…while、for循环语句都可以进行嵌套,其中,for循环嵌套是最常见的循环嵌套,其格式如下所示:

for(初始化表达式; 循环条件;操作表达式) 
{
  for(初始化表达式; 循环条件; 操作表达式) 
  {
    执行语句;
  }
}

在for循环嵌套中,外层循环每执行一次,内层循作为外层循环体中的语句会完全执行一次。例如,如果外层循环需要执行3次,由变量i控制,内层循环执行4次,由变量j控制,示例代码如例1所示。

例1 loopNest.c

 1  #include <stdio.h>
 2  int main()
 3  {
 4    for(int i = 1; i <= 3; i++)
 5    {
 6      printf("执行第%d次外层次循环:\n", i); //每一次外层循环都输出i的值
 7      for(int j = 1; j <= 4; j++) 
 8      {
 9        printf("%3d", j);   //内层循环输出j的值,输出宽度为3
 10     }
 11     printf("\n");       //每一次外层循环结束后就换行
 12   }
 13   return 0;
 14 }

例1运行结果如图1所示。

图1 例1运行结果

在例1中,第5行代码控制外层循环,变量i可取1、2、3三个值;第6行代码输出外层循环执行次数;第7行代码控制内层循环,变量j可取1、2、3、4四个值;第9行代码输出变量j的取值。由图1可知,外层循环每执行1次,内层循环就执行4次,即外层循环每取一个i的值,j都要从1~4循环执行一遍,其循环过程可用图2表示。

图2 双层for循环过程

在图2中,第1轮外层循环中,i=1,j分别循环执行1、2、3、4四个条件值,当j结束循环时,该轮内层循环结束,外层循环执行i++操作,进入第2轮外层循环…,以此类推,直到外层循环条件不成立时结束循环。

点击此处
隐藏目录