第5章 循环结构程序设计.pptx

上传人:eieieie 文档编号:21713485 上传时间:2023-11-03 格式:PPTX 页数:24 大小:1,014.53KB
返回 下载 相关 举报
第5章 循环结构程序设计.pptx_第1页
第1页 / 共24页
第5章 循环结构程序设计.pptx_第2页
第2页 / 共24页
第5章 循环结构程序设计.pptx_第3页
第3页 / 共24页
第5章 循环结构程序设计.pptx_第4页
第4页 / 共24页
第5章 循环结构程序设计.pptx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《第5章 循环结构程序设计.pptx》由会员分享,可在线阅读,更多相关《第5章 循环结构程序设计.pptx(24页珍藏版)》请在三一文库上搜索。

1、第第5章章 循环结构程序设计循环结构程序设计本章重点u while语句、dowhile语句、for语句的用法。u 多重循环语句的用法及注意事项。u break与continue语句的区别。u 循环结构程序设计的方法。2本章难点u dowhile语句中条件表达式的书写 u 多重循环语句的执行流程 u 循环结构算法的思维训练35.1 while语句一般形式:while(表达式)循环体语句4说明:(1)while语句括号中的“表达式”可以是任意类型表达式,必须用圆括号“()”括起来。(2)“循环体语句”部分可以是单个语句,也可以是多个语句。如果是多个语句,必须用 一对花括号“”将它们括起来构成复合语

2、句。(3)while语句的特点是:先执行表达式,后执行循环体。5例5.1 从键盘上输入10个整数,求它们的最 大数。【分析】对于需要使用循环结构的程序,读者需 要弄清楚两个基本问题:(1)需要被重复执行的操作是什么,换句话说,循环体是什么。(2)循环体的执行需要满足的判别条件是什么。6【程序】#include int main()int x,max,i;scanf(%d,&x);max=x;i=1;while(i10)scanf(%d,&x);if(maxx)max=x;i+;printf(%d,max);return 0;7例5.2 输入两个正整数 m 和n,求它们的最大公约数。8【分析】从

3、最大公约数的概念出发,要找到能够既能整除 m 又能整除n的最大数。具体步骤如下:(1)输入两个整数 m 和n。(2)判断这两个整数是否为正整数,如果不是,则给出错误提示信息;如果是,则转向第(3)步。(3)将变量 min的值设置为 m 和n的较小数。(4)置初值i=2。(5)若i小于或等于 min,则执行(6),否则转向(8)。(6)判断i是否能够整除 m 和n,若能,则把i的值赋给变量t。(7)i的值自增。(8)输出结果。5.2 dowhile语句9dowhile语句也叫“直到型循环语句”,其一般形式如下:do 循环体语句 while(表达式)【说明】10(1)dowhile语句中的“表达式

4、”可以是任意类型表达式,必须用圆括号“()”括起来。(2)dowhile语句的特点是:先执行循环体,后判断表达式。例5.3 while语句和dowhile语句执行结果的比较。(1)while(1)while语句代码段。语句代码段。#include int main()int sum=0,i;scanf(%d,&i);while(i5)sum+=i+;printf(sum=%d,sum);return 0;(2)dowhile语句代码段。#include int main()int sum=0,i;scanf(%d,&i);do sum+=i+;while(i ,则转到(6);若i m,则用 m

5、 除以i,如果不能整除,则转到(4),否则 转到(5)。(4)将i的值自增,再转到(3)。(5)将flag的值置为0,再转到(4)。(6)如果flag等于1,则 m 是素数,否则就不是素数。m例5.6 有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前10 项之和。16【分析】首先分析这个数列的规律:从第2个数开始,该数项的分母是前一个数项的 分子,该数项的分子是前一个数项的分子与分母之和。算法如下:(1)用s表示各个数项之和,令其初值等于0;用a表示数项的分子,初值赋为2;用b表 示数项的分母,初值赋为1。(2)用i表示加到s中的数项的个数,初值为1。(3)

6、若i10,则转到(8);否则转到(4)。(4)将a/b加到s中。(5)将前一个数项的分子与分母之和赋值给后一个数项的分子。(6)将前一个数项的分子赋值给后一个数项的分母。(7)将i的值自增,再转到(3)。(8)输出结果。5.4 用goto语句和if语句构成循环17 goto语句也叫转向语句,用于将程序的执行流程转移到由goto语句指定的位置(某个标号语句处)。它的一般形式为:goto 语句标号;其中,语句标号由标识符表示。带标号语句的一般形式为:标号:语句;带标号语句的作用是便于其他语句将程序的执行流程转移到标号所标记的位置5.5 循环的嵌套18 如果循环语句的循环体内包含另一个完整的循环结构

7、,则称为循环的嵌套。如果一个循 环体内只嵌套一层循环,这种结构就称作二重循环。对于二重循环而言,处于内部的循环叫作外循环。例5.8 编程实现下面图形的输出。1920【分析】对于要输出的这个图形,应当考虑输出行数、每行星号的个数、每行星号的位 置3个因素。经过分析发现,第i(-2i2)行星号的个数等于5-2*abs(i)。对于每行 星号的位置,取决于它的前导空格个数,第i行的前导空格数等于abs(i)。需要说明的是,abs(i)表示i的绝对值。算法如下:(1)将i的初值设置为-2。(2)当i2时,转向(7),否则转向(3)。(3)输出abs(i)个空格。(4)输出5-2*abs(i)个星号。(5

8、)输出换行符。(6)i的值自增,并转向第(2)步。(7)程序结束。5.6 关于循环语句的几点说明21(1)前面讲过的几种循环语句通常可以互相替代。(2)编写带有循环结构的程序时,应当首先考虑以下几个问题:循环执行的初始条件是什么?循环控制条件是什么?循环体部分执行什么操作?此外,还应当注意是否具有使循环趋于结束的语句,如果没有,则会出现死循环。(3)当“表达式”中含有+或-运算符时,需要特别注意运算次序。5.7 break语句和continue语句22break语句只能在循环语句以及switch语句中使用,用于退出它所在的循环语句或 switch语句。例如:b=2;while(ba)if(a%

9、b=0)break;b+;23 continue语句只能用在dowhile、for与 while这3种循环语句中,用于终止(跳过)它 所在的最内层循环语句的循环体中尚未执行的语句(但不终止整个循环的执行),接着进行下一轮循环。需要注意的是,break语句的功能是结束整个循环过程,而continue语句只结束本次循 环。比较以下两个程序的不同。24#include int main()int t,x=0,y=0;for(t=0;t0)x+;continue;y+;printf(x=%d,y=%d,x,y);return 0;#include int main()int t,x=0,y=0;for(t=0;t0)x+;break;y+;printf(x=%d,y=%d,x,y);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信/电子


经营许可证编号:宁ICP备18001539号-1