C 语言多重循环嵌套

C 语言多重循环嵌套

多重循环嵌套是我们之前讲过的几种不同的循环控制语句的组合,可以有不同的组合形式。在这里,我们给大家举例讲解。

1. 单一循环语句组成的嵌套循环

1.1 由 for 语句组成的循环嵌套

#include <stdio.h>int main(){for (int i = ; i < ; i++){printf("Outside: %d\n", i);for (int j = ; j < ; j++){printf("Inside: %d\n", j);}}return ;}

运行结果:

Outside: 0
Inside: 5
Inside: 6
Inside: 7
Inside: 8
Inside: 9
Outside: 1
Inside: 5
Inside: 6
Inside: 7
Inside: 8
Inside: 9
Outside: 2
Inside: 5
Inside: 6
Inside: 7
Inside: 8
Inside: 9

这个程序内部的循环语句执行了 15 次,外部的循环语句执行了 3 次。

1.2 由 do while 语句组成的循环嵌套

#include <stdio.h>int main(){int i = , j = ;do{i--;printf("Outside: %d\n", i);do{j++;printf("Inside: %d\n", j);} while (j < );} while (i > );return ;}

运行结果:

Outside: 4
Inside: 4
Inside: 5
Inside: 6
Outside: 3
Inside: 7

这个程序的内层循环执行了 4 次,外层循环执行了 2 次。

1.3 由 while 语句组成的循环嵌套

#include <stdio.h>int main(){int i = , j = ;while (i > ){i--;printf("Outside: %d\n", i);while (j < ){j++;printf("Inside: %d\n", j);}}return ;}

运行结果:

Outside: 4
Inside: 4
Inside: 5
Inside: 6
Outside: 3

这个程序的内层循环执行了 3 次,外层循环执行了 2 次。

2. 不同类型循环组成的嵌套循环

2.1 由 do while , do 和 for 语句组成的三重嵌套

#include <stdio.h>int main(){int i = , k = ;do{i--;printf("Loop 1: %d\n", i);for (int j = ; j < ; j++){printf("Loop 2: %d\n", j);while (k < ){k++;printf("Loop 3: %d\n", k);}}} while (i > );return ;}

运行结果:

Loop 1: 4
Loop 2: 0
Loop 3: 1
Loop 3: 2
Loop 3: 3
Loop 2: 1
Loop 2: 2
Loop 1: 3
Loop 2: 0
Loop 2: 1
Loop 2: 2

程序中循环 3 执行了 3 次,循环 2 执行了 6 次,循环 1 执行了 2 次。

大家可以根据上面的例子进行拓展,可以有不同的组合与不同的嵌套层数。

3. 小结

多重循环嵌套,就是将原有的循环控制语句进行嵌套组合,也就是将一个循环语句写到其他的循环语句中的循环体中。这样就可以循环多次执行循环体中的循环。这种循环有点如同我们使用的电度表,俗称电表。当你用电的时候,电表会从最低位开始不断循环,当完成一圈循环后,上一位就会自动加一。这种循环使得电表中的数字依次增加。

Tips:如果不是有特殊的需求,请为你的所有的循环语句设置可以达到的循环停止的条件。不然就是无尽的死循环,会让程序在耗尽系统分配给它的资源后被操作系统强制终止,或者造成操作系统的资源抢占,使得操作系统没有办法相应别的软件的请求。