C 语言允许在一个循环内使用另一个循环,下面演示几个实例来说明这个概念。
语法
C 语言中 嵌套 for 循环 语句的语法:
for (initialization; condition; increment/decrement){ statement(s); for (initialization; condition; increment/decrement) { statement(s); ... ... ... } ... ... ...}
流程图:
C 语言中 嵌套 while 循环 语句的语法:
while (condition1){ statement(s); while (condition2) { statement(s); ... ... ... } ... ... ...}
流程图:
C 语言中 嵌套 do...while 循环 语句的语法:
do{ statement(s); do { statement(s); ... ... ... }while (condition2); ... ... ...}while (condition1);
流程图:
关于嵌套循环有一点值得注意,您可以在任何类型的循环内嵌套其他任何类型的循环。比如,一个 for 循环可以嵌套在一个 while 循环内,反之亦然。
实例
下面的程序使用了一个嵌套的 for 循环来查找 2 到 100 中的质数:
for 嵌套实例
#include <stdio.h> int main (){ /* 局部变量定义 */ int i, j; for(i=2; i<100; i++) { for(j=2; j <= (i/j); j++) if(!(i%j)) break; // 如果找到,则不是质数 if(j > (i/j)) printf("%d 是质数\n", i); } return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
2 是质数3 是质数5 是质数7 是质数11 是质数13 是质数17 是质数19 是质数23 是质数29 是质数31 是质数37 是质数41 是质数43 是质数47 是质数53 是质数59 是质数61 是质数67 是质数71 是质数73 是质数79 是质数83 是质数89 是质数97 是质数
while 嵌套实例
#include <stdio.h>int main(){ int i=1,j; while (i <= 5) { j=1; while (j <= i ) { printf("%d ",j); j++; } printf("\n"); i++; } return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
11 21 2 31 2 3 41 2 3 4 5
do-while 嵌套实例
#include <stdio.h>int main(){ int i=1,j; do { j=1; do { printf("*"); j++; }while(j <= i); i++; printf("\n"); }while(i <= 5); return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
***************