- 43
- 0
- 约1.42万字
- 约 30页
- 2016-08-10 发布于重庆
- 举报
C语言教案第5章
复习
自增自减运算符和复合赋值表达式
新授
循环结构程序设计
5.1 循环语句概述
以求1~100的累计和为例。
根据已有的知识,可以用“1+2+……+100”来求解,但显然很繁琐。现在换个思路来考虑:
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次取1、2、……、100),只要解决以下3个问题即可:
(1)将n的初值置为1;
(2)每执行1次“sum += n”后,n增1;
(3)当n增到101时,停止计算。此时,sum的值就是1~100的累计和。
根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环结构),C语言提供了3条循环语句来实现,以简化、并规范循环结构程序设计。
在C语言中,可用以下语句实现循环:
(1)用for语句。
(2)用do-while语句。
(3)用while语句。
(4)用goto语句和if语句构成循环。使用goto语句实现求解1~100累计和的程序可以如下:
main()
{ int n=1, sum=0;
loop: sum += n; n++;
if (n=100) goto loop;
printf(“sum=%d\n”, sum);
}
其中“loop:”为语句标号(格式:标号: 语句行),其命名遵循标识符命名规则。goto语句格式:goto 标号,功能为:使系统转向标号所在的语句行执行。
5.2 while 语句
一、while语句
(1)一般格式
while(循环继续条件)
{ 循环体语句组;}
(2)执行过程
执行过程如图5-2(P70)所示。
1)求解“循环继续条件”表达式。如果其值为非0,转2);否则转3)。
2)执行循环体语句组,然后转1)。
3)执行while语句的下一条。
显然,while循环是for循环的一种简化形式(缺省“变量赋初值”和“循环变量增值”表达式)。
[案例5.3] 用while语句求1~100的累计和。
/*案例代码文件名:AL5_3.C*/
/*程序功能:求1~100的累计和*/
main()
{ int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/
while( i=100 )
{ sum += i; /*实现累加*/
i++; /*循环控制变量i增1*/
}
printf(“sum=%d\n”,sum);
}
程序运行情况如下:
sum=5050
自编程序:求∑n!(n=1~20)
main()
{
int n=0;
double t=1.0,sum=0.0;
clrscr();
while(n20)
{ n++;
t*=n;
sum+=t;
}
printf(∑%d!= %e”,n,sum);
}
5.3 直到型循环do-while语句
1.一般格式
do
{ 循环体语句组; }
while(循环继续条件); /*本行的分号不能缺省*/
当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。
2.执行过程
执行过程如图5-3所示。
(1)执行循环体语句组。
(2)计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非 0(真),则转向(1)继续执行;否则,转向(3)。
(3)执行do-while的下一条语句。
do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。
[案例5.4] 用do-while语句求解1~100的累计和。
/*案例代码文件名:AL5_4.C*/
/*程序功能:求1~100的累计和*/
main()
{ int i=1, sum=0; /*定义并初始化循环控制变量,以及累计器*/
do
{ sum += i; /*累加*/
i++;
}
while(i=100); /*循环继续条件:i=100*/
printf(“sum=%d\n”,sum);
}
do-while语句比较适用于处理:不论条件是否成立,先执行1次循环体语句组的情况。除此之外,do-while语句能实现的,for语句也能实现,而且更简洁。
例:求5!
循环
次数
fact*i
i++
1
1*1
2
2
1!*2
3
3
2!*3
4
4
3!*4
5
5
4!*5
6
#include stdio.h/*03.c*/
main()
{
int i, fact;
i=1, fact=1;
clrscr();
do
您可能关注的文档
最近下载
- 部编版语文五年级下册第二单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第一单元教材解读大单元集体备课.pptx VIP
- 车工 (数控车床)理论知识考核要素细目表四级.pdf VIP
- 本科课程《基础护理学》教案,第十二章给药.doc VIP
- 农村题材小品剧本村官.pdf VIP
- 小品剧本-小品《绰号》.docx VIP
- 小品剧本-小品《竞选》.docx VIP
- 本科课程基础护理学教给药教案(2025—2026学年).docx VIP
- LaserjetCP1025系列打印机打印质量故障排除手册.pdf VIP
- 年会小品剧本小品剧本:搞笑小品剧本《都是喝酒惹事》台词大全.docx VIP
原创力文档

文档评论(0)