• 微信号
  • 微信号
您当前的位置:首页 > 学海无涯 > 茑语花香>C语言循环嵌套详解

C语言循环嵌套详解

孤峰 C语言中文网 2023-06-18 75人阅读

在C语言中,if-else、while、do-while、for 都可以相互嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,或者 for 里面有 while,while 里面有 if-else,这都是允许的。

if-else 的嵌套在《C语言if else语句》一节中已经进行了讲解,本节主要介绍循环结构的嵌套。

示例1:for 嵌套执行的流程。

#include <stdio.h> 
int **in() 
{ 
int i, j; 
for(i=1; i<=4; i++){ 
//外层for循环 
for(j=1; j<=4; j++){ 
//内层for循环 
printf("i=%d, j=%d\n", i, j); 
} 
printf("\n"); 
} 
return 0; 
}

运行结果:

i=1, j=1

i=1, j=2

i=1, j=3

i=1, j=4

i=2, j=1

i=2, j=2

i=2, j=3

i=2, j=4

i=3, j=1

i=3, j=2

i=3, j=3

i=3, j=4

i=4, j=1

i=4, j=2

i=4, j=3

i=4, j=4

本例是一个简单的 for 循环嵌套,外层循环和内层循环交叉执行,外层 for 每执行一次,内层 for 就要执行四次。

在C语言中,代码是顺序、同步执行的,当前代码必须执行完毕后才能执行后面的代码。这就意味着,外层 for 每次循环时,都必须等待内层 for 循环完毕(也就是循环4次)才能进行下次循环。虽然 i 是变量,但是对于内层 for 来说,每次循环时它的值都是固定的。

示例2:输出一个4×4的整数矩阵。

#include <stdio.h> 
int **in() 
{ 
int i, j; 
for(i=1; i<=4; i++){ 
//外层for循环 
for(j=1; j<=4; j++){ 
//内层for循环 
printf("%-4d", i*j); 
} 
printf("\n"); 
} 
return 0; 
}

运行结果:

1 
2 
3 
4 
2 
4 
6 
8 
3 
6 
9 
12 
4 
8 
12 
16

外层 for 第一次循环时,i为1,内层 for 要输出四次 1*j 的值,也就是第一行数据;内层for 循环结束后执行 printf("\n"),输出换行符;接着执行外层 for 的 i++ 语句。此时外层 for 的第一次循环才算结束。

外层 for 第二次循环时,i为2,内层 for 要输出四次 2*j 的值,也就是第二行的数据;接下来执行 printf("\n") 和 i++,外层 for 的第二次循环才算结束。外层 for 第三次、第四次循环以此类推。

可以看到,内层 for 每循环一次输出一个数据,而外层 for 每循环一次输出一行数据。

示例3:输出九九乘法表。

#include <stdio.h> 
int **in(){ 
int i, j; 
for(i=1; i<=9; i++){ 
//外层for循环 
for(j=1; j<=i; j++){ 
//内层for循环 
printf("%d*%d=%-2d 
", i, j, i*j); 
} 
printf("\n"); 
} 
return 0; 
}

运行结果:

1*1=1 
2*1=2 
2*2=4 
3*1=3 
3*2=6 
3*3=9 
4*1=4 
4*2=8 
4*3=12 
4*4=16 
5*1=5 
5*2=10 
5*3=15 
5*4=20 
5*5=25 
6*1=6 
6*2=12 
6*3=18 
6*4=24 
6*5=30 
6*6=36 
7*1=7 
7*2=14 
7*3=21 
7*4=28 
7*5=35 
7*6=42 
7*7=49 
8*1=8 
8*2=16 
8*3=24 
8*4=32 
8*5=40 
8*6=48 
8*7=56 
8*8=64 
9*1=9 
9*2=18 
9*3=27 
9*4=36 
9*5=45 
9*6=54 
9*7=63 
9*8=72 
9*9=81

和示例2一样,内层 for 每循环一次输出一条数据,外层 for 每循环一次输出一行数据。

需要注意的是,内层 for 的结束条件是j<=i。外层 for 每循环一次,i 的值就会变化,所以每次开始内层 for 循环时,结束条件是不一样的。具体如下:

  • 当 i=1 时,内层 for 的结束条件为 j<=1,只能循环一次,输出第一行。
  • 当 i=2 时,内层 for 的结束条件是 j<=2,循环两次,输出第二行。
  • 当 i=3 时,内层 for 的结束条件是 j<=3,循环三次,输出第三行。
  • 当 i=4、5、6... 时,以此类推。

九九乘法表还有更多输出方式,请查看:C语言输出九九乘法表(5种解法)

转载:感谢您阅览,转载请注明文章出处“来源从小爱孤峰知识网:一个分享知识和生活随笔记录的知识小站”。

链接:C语言循环嵌套详解http://www.gufeng7.com/niaolang/442.html

联系:如果侵犯了你的权益请来信告知我们删除。邮箱:119882116@qq.com

标签: