循环语句的比较
while循环和for循环的循环继续条件检查是在循环体执行之前进行的,称为前置检测循环,循环体执行次数最少为0次;do-while循环的循环继续条件检查是在循环体执行之后进行的,称为后置检测循环,循环体执行次数最少为1次。而for语句最为灵活。在一定条件下,三者可以相互取代。
基于代码易读性考虑,编写程序处理循环结构时,选择哪一种循环语句没有严格规定,几个常用的规则如下:
1.如果循环次数已经知道的情况使用for语句;
2.循环次数不确定的情况使用while语句;
3.如果需要在检查循环继续条件之前执行循环体,则使用do-while语句。
循环嵌套
一个循环语句的循环体内包含另一个完整的循环语句,称为循环的嵌套。循环的嵌套可以有很多层,一个循环的内嵌一层循环叫双层循环嵌套,简称双重循环。在循环嵌套的内层循环中再内嵌一层或多层循环语句可以形成多重循环。
例:编写程序输出九九乘法表。
思路分析:九九乘法表由9行构成,第1行有1个乘法等式,第2行有2个乘法等式,依此类推。解决这类问题时,可以采用逐步分析的方法,分析思路如下:
(1) 首先考虑如何需要输出9行数据。可以设计如下的循环结构,该循环用于控制行的输出,每循环执行循环体一次,就输出一行。
代码语言:javascript复制for(i=1; i<=9; i )
{
输出第i行;
}
(2) 然后考虑如果输出第i行。根据分析,第i行由i个乘法等式和一个换行字符组成,因此可以设计一个循环结构输出i个乘法等式,然后再输出一个换行。
(3) 最后将上述分析的循环结构进行嵌套,可以得到程序的整体结构。
参考代码:
代码语言:javascript复制 #include <stdio.h>
int main()
{
int i, j;
for(i=; i<=; i )
{
for(j=; j<=i; j )
{
printf("%d*%d=- ", i,j,i*j);
}
printf("n");
}
return ;
}
结果示例;