第六章 循环结构程序设计.docx
- 文档编号:3903282
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:17
- 大小:55.77KB
第六章 循环结构程序设计.docx
《第六章 循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《第六章 循环结构程序设计.docx(17页珍藏版)》请在冰豆网上搜索。
第六章循环结构程序设计
循环结构程序设计
(一)
内容
说明
本讲内容
重点
难点
引入
举例
1.循环结构的概念
2.While语句的一般形式、流程图、执行过程
3.While语句的应用
4.Do--while语句的一般形式、流程图、执行过程
5.Do--while语句的应用
1.While语句的执行过程及while语句的应用
2.Do--while语句的执行过程及while语句的应用
1.while语句的应用
2.Do--while语句应用
在许多问题中需要用到循环控制,例如,要输入全校学生成绩,求若干个数之和。
迭代求根等。
几乎所有实用的程序都包含循环。
循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。
1.循环结构的概念
利用计算机重复处理某些实际问题就构成了循环结构。
在循环结构中将某些语句重复执行,这些语句称为循环体;每重复一次都要判断是继续重复还是停止重复,这个判断所依据的条件称为循环条件;循环体与循环条件一起构成了循环结构。
例1:
求1+2+3+……+99+100的和
要完成上面的累加求和运算,设sum为累加和变量,i为循环控制变量,用于控制循环次数,也就是循环继续的条件,并且i由1变到100,实现上述算法的N-S图如下。
要用C语言实现上述算法,就要学习实现循环的语句。
举例
2.While语句
⑴【一般格式】
while(表达式)
{循环体语句
}
while语句是一种先判断后执行的循环语句。
【注意】
①“表达式”一般为关系表达式或逻辑表达式。
②循环体可以是单个语句,也可是多个语句;如果是多个语句必须使用大括号“{}”将多个语句括起来构成一个复合语句。
⑵【流程图及N-S图】
⑶【执行过程】
先计算表达式的值并判断,若表达式的值为真(非零),则执行循环体的语句;若表达式的值为假(零)时,结束循环。
⑷【应用】
利用while语句“求1+2+3+……+99+100的和”参考程序如下:
main()
{inti,sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i++;}
printf("sum=%d\n",sum);}
将实际问题如何写成关系表达式及逻辑表达式
分析程序的循环情况
程序写入TC环境中运行,观察运行结果
例2:
利用while语句计算n!
(即:
1x2x3x……xn)
参考程序如下:
main()
{inti=1,n,s=1;
scanf(“%d”,&n);
while(i<=n)
{s=s*i;
i++;}
printf("s=%d\n",s);}
3.do—while语句
⑴【一般格式】
do
{
循环体语句
}while(表达式);
do-while语句是一种先执行后判断的循环语句。
⑵【流程图及N-S图】
⑶【执行过程】
先执行循环体语句,再计算表达式的值,若表达式的值为真(非零),再执行循环体的语句;当表达式的值为假(零)时,结束循环。
⑷【应用】
例3:
用do—while语句编程实现求1+2+3+……+99+100的和
参考程序如下:
分析循环中语句的写法
举例
总结
本讲小结
main()
{inti,sum=0;
i=1;
do
{sum=sum+i;
i++;}while(i<=100);
printf("sum=%d\n",sum);}
例4:
用do—while语句编程计算n!
(即:
1x2x3x……xn)
模仿例3同学们自己写出相应的程序。
4.while与do-while语句的区别
⑴while语句是先判断,后执行的循环语句;而do-while语句是先执行,后判断循环语句。
⑵当第一次进行判断表达式的值时,表达式的值为假时,while语句不执行循环体语句,而转去执行循环结构的下一语句;而do-while语句先执行一次循环体语句,而后转去执行循环结构的下一语句。
⑶不论是while还是do-while语句构成的循环,在循环体中都应有修改循环控制变量值的语句,否则程序会进行无限循环状态。
1.while与do-while语句的格式。
2.循环条件的设计。
3.注意循环结束时循环变量的值。
4.while与do-while语句的比较
注意循环条件的位置
程序写入TC环境中运行,观察运行结果
循环结构程序设计
(二)
内容
说明
本讲内容
重点
难点
1.for语句的一般格式、流程图、执行过程
2.for语句的应用
3.for语句的特殊形式
4.三种循环语句的比较
5.综合例题
for语句的执行过程及应用
for语句的执行过程及应用
1.for语句
⑴【一般格式】
for(表达式1;表达式2;表达式3)
循环体语句;
【注意】
循环体语句可以是单个语句,也可是复合语句或空语句。
三个表达式之间用分号分隔。
⑵【流程图及N-S图】
表达式1:
一般为循环控制变量赋初值的语句。
表达式2:
循环条件语句。
表达式3:
循环控制变量变化语句。
实例
⑶【执行过程】
先计算表达式1的值;再计算表达式2的值,若为真,则执行循环体,最后计算表达式3的值;再次计算表达式2的值,若为真,再执行循环体,再计算表达式3的值;直到某次表达式2的值为假循环结束,执行循环的下一语句。
⑷【应用】
利用for语句“求1+2+3+……+99+100的和”参考程序如下:
main()
{inti,sum=0;
for(i=1;i<=100;i++)
{sum=sum+i;}
printf("sum=%d\n",sum);}
⑸for循环语句的特殊格式
以【for(i=1;i<=100;i++)】语句为例
i=1;
for(;i<=100;i++)
①省略表达式1,语句格式为:
【for(;表达式2;表达式3)】→
for(i=1;;i++)
{if(i<=100)
……}
②省略表达式2,语句格式为
【for(表达式1;;表达式3)】→
for(i=1;i<=100;)
{……
i++;}
③省略表达式3,语句格式为:
【for(表达式1;表达式2;)】→
i=1;
for(;i<=100;)
{……
i++;}
④省略表达式1及3,语句格式为
for(;表达式2;)→
i=1;
for(;;)
{if(i<=100)
……
i++;}
⑤省略三个表达式,语句格式为:
for(;;)→
2.三种循环语句的比较
⑴while语句和for语句是属于先测试终止条件的循环语句,故循环体有可能一次也不执行。
⑵do—while语句是后测试终止条件的循环语句,循环体至少执行一次。
⑶for语句与while语句本质上相近,很容易互换。
所有循环语句都是在终止条件为真时才能执行循环体。
⑷如果循环次数可以在进入循环语句之前确定,使用for语句较好;在循环次数难以确定时使用while和do—while语句较好。
分析循环过程
循环结束时变量i的值
举例说明
3.例题
【例1】从键盘上输入10个数,求出其中的最大值与最小值。
参考程序如下
main()
{inti,x,max,min;
scanf(“%d”,&x);
max=x;min=x;
for(i=2;i<=10;i++)
{scanf(“%d”,&x);
if(x>max)max=x;
elseif(x } printf(“max=%dmin=%d\n”,max,min);} 【例2】输出100到200之间可以被7整除的数。 main() {intk; for(k=100;i<=200;i++) {if(k%7==0) printf("%d",k); } } 对程序进行详细分析 在TC环境中运行该程序 循环结构程序设计(三) 内容 说明 本讲内容 重点 难点 举例 1.Break语句及应用 2.Continue语句及应用 3.Break语句与Continue语句区别 4.循环嵌套的概念及应用 5.综合例题 分析面积大于100时循环执行了几次 Break、Continue语句及循环嵌套的应用 循环嵌套的应用 1.Break语句 【一般格式】 break; 【功能】使程序的执行从包含它的最内层循环或switch语句中跳出。 【注意】 break只能用于switch语句或循环语句中。 在循环结构中通常用if语句与之配合使用。 Break语句只能从最内层循环跳到外层循环中。 【应用】 例1【计算半径r=1到r=10的圆面积,直到面积大于100为止】。 main() {intr; floatarea; for(r=1;r<=10;r++) {area=3.14*r*r; if(area>=100)break; printf("r=%darea=%f\n",r,area);} } 2.continue语句 【一般格式】continue; 【功能】结束本次循环,继续下一次循环。 【注意】 continue语句只用于循环结构中,通常与if语句配合使用。 【应用】 例2输出100到200之间不能被7整除的数。 实例 main() {intn; for(n=100;n<=200;n++) {if(n%7==0)continue; printf("%d\t",n);} } 3.break语句与continue语句区别 continue是结束本次循环,进行下一次循环,而不是结束整个循环过程。 对单层循环,break语句是结束整个循环,转到循环体外;对于多层循环,则是结束最内层循环。 例3将例2中的continue;换成break;执行程序,观察输出结果。 4.循环嵌套的概念及应用 当一个循环结构中包含另一个循环结构时,称为循环的嵌套或多重循环。 在循环嵌套中。 【应用】 例4编程输出乘法“九九表”。 main() {intm,n,k; for(m=1;m<=9;m++) {for(n=1;n<=m;n++) printf("%d*%d=%d",n,m,n*m); printf("\n"); } } 5.综合例题 例5分析下列程序,写出输出结果。 main() {inta,b=1; for(a=1;a<=200;a++) {if(b>=20)break; if(b%3==1) {b+=3; continue;} b-=5; 解释结束本次循环的概念 在TC环境中运行程序 分析内层循环与外层循环的关系 用不同的循环语句如何实现 注意: break;与continue;的作用 } printf("%d",a); } 例6从键盘上输入若干字符,以“#”号结束,统计其中字符A或a(包括大写字母或小写字母)的个数。 #include"stdio.h" main() {charch; intk=0; while((ch=getchar())! ='#') {if(ch=='A'||ch=='a') k=k+1;} printf("%d\n",k); } 6、思考与练习 1、输入两个正整数m和n,求其最大的公约数和最小公倍数。 2、输入一行字符,分别统计出其中英文字母、空格、数字、和其他字符的个数。 3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如153就是一水仙花数。 153=13+53+33 4、用二分法求下面方程在(-10,10)之间的根。 2x 3-4x2+3x-6=0 注意循环条件的写法。 循环条件是否可以改成其它形式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 循环结构程序设计 第六 循环 结构 程序设计