三、循环结构
循环结构需要确定循环初始值,循环继续(或结束)的条件,执行循环的操作(循环体内容),这些内容确定后,就可以用语句while、do-while、或for实现循环。
1. while语句
当满足某一条件时,反复执行一组语句,直到该条件不成立时结束该语句组执行。
格式:
while(表达式)
{
循环体语句
}
2. do-while语句
do-while语句的特点是先执行循环体,然后判断循环条件是否成立,以决定循环是否继续进行。
格式:
do
{
循环体语句
}
while(表达式); //注意分号
3. for语句
for语句是C程序中使用最多、最为灵活的一种循环语句。通常情况下for语句用于实现循环语句已知的循环,而 while 和 do-while 语句则用于实现循环次数未知的循环。
格式:
for(表达式1;表达式2;表达式3) //注意无分号
{
循环体语句
}
//表达式1通常是赋值表达式或逗号表达式,用于为循环变量赋初值;
//表达式2通常为关系表达式,也称控制表达式,用于控制是否执行循环体语句;
//表达式3称为循环增量,通常为自增或自减表达式,用于改变循环变量的值,使表达式2逐步向循环结束的方向发展;
for语句执行过程:
- 求解表达式1;
- 求解表达式2,判断表达式2的值,若值为真,则执行循环体语句;若为假,则结束循环;
- 求解表达式3;
- 转向2.
注意:
1.循环次数固定常用for
2.必须执行一次的循环常用do-while
3.其他情况常用while
4. 循环的嵌套
一个循环的循环体中套有另一个完整的循环结构称为循环的嵌套
- 两重循环(外层循环、内层循环)
- 并列的内层循环
5. 辅助控制语句:break、continue语句
当运用循环求解问题的时候,有时想要提前结束循环,就需要用到辅助控制语句break和continue来实现;break语句用于结束一层循环;continue语句用于结束一次循环(具体有待补充)
例题:1. 求1+3+5+...+99的奇数和:(三种方法)
(1)
#include <stdio.h>
int main( )
{
int sum, i;
i=1;
sum=0;
while(i<=99)
{
sum=sum+i;
i+=2;
}
printf("sum=%d\n",sum);
return 0;
}
(2)
#include <stdio.h>
int main( )
{
int sum, i;
i=1;
sum=0;
do
{
sum=sum+i;
i+=2;
}
while(i<=99);
printf("sum=%d\n",sum);
return 0;
}
(3)
#include <stdio.h>
int main( )
{
int sum, i;
sum=0;
for(i=1; i<=99;i+=2)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
return 0;
}
2. 输出0-99:
#include <stdio.h>
int main( )
{
int g, s;
s=0;
while(s<=9)
{
g=0;
while(g<=9)
{
printf("%4d",s*10+g);
g++;
}
s++;
}
return 0;
}
3.输出0-999:
#include <stdio.h>
int main( )
{
int l, s, g;
l=0;
while(l<=9)
{
s=0;
while(s<=9)
{
g=0;
while(g<=9)
{
printf("%4d",l*100+s*10+g);
g++;
}
s++;
}
l++;
}
return 0;
}