循环结构流程及应用.ppt
《循环结构流程及应用.ppt》由会员分享,可在线阅读,更多相关《循环结构流程及应用.ppt(58页珍藏版)》请在三一办公上搜索。
1、第四章 循环结构流程及应用,第一节 While语句的流程及应用第二节 do-While语句的流程及应用 第三节 for语句的流程及应用 第四节 循环的嵌套 第五节 break语句和continue语句 第六节 项目任务:软件用户界面设计再优化,第一节 While语句的流程及应用,许多实际问题往往需要有规律地重复某些操作,相应的操作在计算机程序中就体现为某些语句的重复操作,这就是循环。循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。,While语句的一般格式while(表达式)循环体语句;其执
2、行流程如图4.1所示。首先计算表达式的值,如果表达式的值非0(真),执行循环体语句,然后重新计算机表达式的值,并再次判断值是否为真,如为真,再执行循环体内的语句。如此循环往复,直到表达式的值0(假)时退出循环,转去执行while循环结构的下一条语句。,说明:循环体有可能一次也不执行循环体可为任意类型语句语句是多个语句时,要用复合语句(用花括弧)应有使循环趋向于结束的语句。下列情况,退出while循环条件表达式不成立(为零)循环体内遇 break,return,goto无限循环:while(1)循环体;,【案例4-1】求 S=1+2+3+99+100 的值,从上面的分析可以看出,这个问题可以通过
3、进行多次加法运算完成,并且加数的变化是有规律的。因此,使用循环结构来解决这个问题。现在,我们需要解决两个问题:如何提供所需的加数,如何计算累加和。提供加数比较简单,设置一个变量i,使i的初值为1,每循环一次使i增加1,当i的值超过100时就结束循环;计算累加和较复杂,设置一个变量s来存放100个数的累加和,s的初值为0。先计算0与1的和,把结果存放在s中(用s=s+1实现);再把s与2相加,结果仍然存放在s中(用s=s+2实现);以此类推,一直到计算出100个加数的和为止。流程图如图4.2所示。,#include main()int i,s=0;/*s存放累加和*/i=1;while(i=10
4、0)s=s+i;i+;printf(n1+2+3.+100=%d,s);【注意】while后面的括号()不能省略,括号内表达式可以是任意类型的表达式,如条件表达式、逻辑表达式、算术表达式、常量等,但一般是条件表达式或逻辑表达式,表达式的值是循环的控制条件。,循环体如果包含一个以上的语句,应该用左右花括号“”括起来,以复合语句形式出现。如果不加“”,则while语句的范围只到while后面第一个分号处。例如,本例中whi1e语句中如无“”,则while语句范围只到“sum=sum+i;”。【思考】如果将while后花括号“”去掉,结果会怎样?,以上程序的循环部分还可以改为以下形式:,形式一:s=
5、1;n=2;While(n=100)s=s+n;n=n+1;,形式二:s=1;n=1;While(n100)n=n+1;s=s+n;,通过以上三种形式比较,我们可以看到在循环结构中,初值(包括循环变量的初值和计算结果初值等)与循环条件是相互影响的,所以为了避免出错,可以通过验算循环结构开始和结束的运行状态,如上例中代入n=1、n=2以及n=99、n=100,进一步判断是否合要求。习惯上,累计求和的初值为0,累计求积的初值为1,所以推荐原程序的形式。,在循环结构设计中,特别需要注意的是:避免死循环。循环体中必须有改变条件的语句,并且可以使程序执行到某一时刻不满足这个条件而结束循环。Ctrl+br
6、eak练习1:从键盘输入n,求1+2+n的结果并输出。,练习2:求5!的阶乘,#includemain()int p=1,i=1;while(i=5)p=p*i;i+;printf(%dn,p);,int count=0;printf(input a string:n);while(getchar()!=n)count+;,以下程序段的功能是什么?循环结束后,count代表什么含义?,【案例4-2】输入20个学生的C语言课程考试成绩,求最高成绩和最低成绩。分析:这是一个求最大值和最小值的问题,用“打擂台”的思路来解决。打擂台时,有一个人先站在台上,第二个人上台与之比武,胜者留在台上,败者下台。
7、第三个人再上台与刚才的胜者比武,胜者留在台上。直到比完19次,此时留在台上的就是20个人中的优胜者。现在用同样的办法找20个数中的最大者。先输入一个数,把它放到变量MAX中,然后输入第二个数并与MAX比较,如果第二个数大于MAX,则由第二个数取代MAX的值。如此输入和比较19次,每次比较后,大者均放在MAX中,最后MAX中的值就是20个数中的最大者。同样,求最小值的办法类似。,#include main()int i,max,min,x;i=1;max=0;min=100;while(i=max)max=x;if(x=min)min=x;i+;printf(n 最高分数为%d:,max);pr
8、intf(n 最低分数为%d:,min);【试一试】在上例中,如果要同时求出C语言课程成绩的总分和平均分,应如何修改程序?,第二节 do-While语句的流程及应用,do-while循环结构与while循环结构不一样,它先执行循环体语句,而后判断循环条件,它的一般形式如下:do 循环体语句;while(表达式);,其执行流程如图4.5所示。首先执行循环体语句,再判断循环条件,若表达式值非0(真),那么再次执行循环体语句。每执行一次后,都判断一次循环条件。如此循环往复,直到表达式的值0(假)时退出循环,转去执行while循环结构的下一条语句。,【案例4-4】利用do-while语句求1+2+3+
9、.+99+100的和。#include main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(n1+2+3.+100=%d,sum);【说明】案例4-4是将案例4-1改写成do-while语句,这两个案例的循环体相同,循环条件相同,输出结构相同。可以发现在循环条件第一次都为真的情况下,while语句和do-while语句可以互换,功能相同。,【案例4-5】每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直到购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱?,#include main()int
10、day=0,buy=2;float sum=0.0,ave;do sum+=0.8*buy;day+;buy*=2;while(buy=100);ave=sum/day;printf(每天平均花钱:%f,ave);【注意】在do-while结构中,while(表达式)后的“;”不能省略。,第三节 for语句的流程及应用,用while语句可以实现循环结构,但是它必须明确地给出继续执行循环的条件(如n100),而在许多情况下,人们给出的往往是执行循环的次数,如统计100人的平均工资、求一个学生5门课的总成绩等,这时用C语言中的for语句更为灵活方便。for语句不仅可以用于循环次数已经确定的情况,而
11、且可以用于循环次数不确定而只给出循环结束条件的情况。,for(表达式1;表达式2;表达式3)循环体语句;上面“表达式1”一般是一个赋值表达式,用来给循环控制变量赋初值;而“表达式2”一般是一个关系表达式或逻辑表达式,用来决定什么时候退出循环;“表达式3”一般是个算术表达式,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用分号(;)间隔。例如:,for(i=1;i 100时,结束循环。,for循环结构的执行流程,案例4-6流程,从图4.7中可以看出,for语句执行过程如下:(1)求解表达式1。(2)求解表达式2,若其值为真(非0),则执行循环体中的语句,然后执行下面第(3)步;若其值
12、为假(0),则结束循环,转至第(5)步。(3)求解表达式3。(4)转至第(2)步继续执行。(5)循环结束,执行for语句下面的一个语句。,for(循环变量赋初值;循环条件;循环变量增值),例如:for(i=1;i=100;i+)sum=sum+i;,相当于:i=1;while(i=100)sum=sum+i;i+;,说明:(1)for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。如 for(;i=100;i+)sum=sum+i;执行时,跳过“求解表达式1”这一步,其他不变。,(2)如果表达式2省略,即不判断循环条件,循
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 流程 应用
链接地址:https://www.31ppt.com/p-4911331.html