内容正文:
第5章 循环结构程序设计
5.1 循环语句概述
5.2 for语句和while语句
5.3 直到型循环do-while语句
5.4 循环结构的嵌套
5.5 break语句与continue语句
5.6 循环结构程序设计应用举例
5.1 循环语句概述
5.1.1引例
在许多实际问题中,都需要用到循环结构。例如,求1~100的累加和。可用以下两种方法来求解:
1.用连加表达式
main()
{ int sum=0; sum=sum+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20;
sum=sum+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40;
sum=sum+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60;
下一页
返回
5.1 循环语句概述
sum=sum+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80;
sum=sum+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100;
printf("sum=%d
",sum);
}
上一页
下一页
返回
5.1 循环语句概述
2.用循环结构
算法分析如下:
(1)设置一个累加变量sum,其初值为0,设置一个计数变量n,其初值为1;
(2)执行:“sum=sum+n; n++;”;
(3)判断条件“n≤100”是否成立,若成立,返回(2);否则,执行下一步;
(4)输出sum的值。
上一页
下一页
返回
5.1 循环语句概述
源程序如下:
main()
{ int n=1,sum=0;
while(i<=100)
{ sum=sum+n; n++; }
printf("sum=%d
",sum);
}
上一页
下一页
返回
5.1 循环语句概述
5.1.2循环结构和循环语句
1.循环结构
当给定条件成立时,反复执行某个程序段的结构,反复执行的程序段称为循环体,给定条件称为循环继续条件。在上例中,“sum=sum+n; i++;”为循环体,“n≤100”为循环继续条件。
2.循环语句
在C语言中,可用以下语句实现循环结构:
(1)用步长型循环语句for语句。
(2)用当型循环语句while语句。
(3)用直到型循环语句do-while语句。
(4)用goto语句和if语句构成循环。
上一页
下一页
返回
5.1 循环语句概述
3.用goto语句和if语句构成循环
上例中的循环结构用以上四种语句均可实现,用goto语句和if语句构成循环实现求解1~100累加和的程序可以如下:
main()
{ int n=1,sum=0;
loop:sum+=n;n++;
if (n<=100 ) goto loop;
printf("sum=%d
",sum); }
上一页
返回
5.2 for语句和while语句
5.2.1for语句
for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况,它可以完全代替while语句。所以for语句也最为常用。
1.引例
例5.1 求1~100的累加和。
例5.2 求n的阶乘n!(n!=1*2*……*n)。
2.for语句的一般格式
for ( 表达式1;表达式2;表达式3 )
{ 循环体语句组;}
下一页
返回
5.2 for语句和while语句
3.for语句的执行过程
(1)求解表达式1。表达式1只执行一次,一般是赋值语句,用于初始化变量。
(2)求解表达式2。如果其值为非0(逻辑真),执行(3);否则,转至(4)。
(3)执行循环体语句组,并求解表达式3,然后转向(2)。
(4)执行for语句的下一条语句。
上述执行过程可表示为如图5-1所示的流程图。可见,表达式2为循环继续条件,循环次数由表达式2的值决定。
上一页
下一页
返回
5.2 for语句和while语句
4.说明
(1)for语句中的表达式1、表达式2和表达式3均可缺省,甚至可全部缺省,但其间的分号不能省略。
(2)表达式1,既可以是给循环控制变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)