欢迎来到天天文库
浏览记录
ID:51973190
大小:1.03 MB
页数:58页
时间:2020-03-26
《循环结构流程及应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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
3、+……+99+100的值从上面的分析可以看出,这个问题可以通过进行多次加法运算完成,并且加数的变化是有规律的。因此,使用循环结构来解决这个问题。现在,我们需要解决两个问题:①如何提供所需的加数,②如何计算累加和。提供加数比较简单,设置一个变量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、图4.2所示。#includemain(){inti,s=0;/*s存放累加和*/i=1;while(i<=100){s=s+i;i++;}printf("1+2+3....+100=%d",s);}【注意】①while后面的括号()不能省略,括号内表达式可以是任意类型的表达式,如条件表达式、逻辑表达式、算术表达式、常量等,但一般是条件表达式或逻辑表达式,表达式的值是循环的控制条件。②循环体如果包含一个以上的语句,应该用左右花括号“{}”括起来,以复合语句形式出现。如果不加“{}”,则while语句的范围只到while后面第
5、一个分号处。例如,本例中whi1e语句中如无“{}”,则while语句范围只到“sum=sum+i;”。【思考】如果将while后花括号“{}”去掉,结果会怎样?以上程序的循环部分还可以改为以下形式:形式一:s=1;n=2;While(n<=100){s=s+n;n=n+1;}形式二:s=1;n=1;While(n<100){n=n+1;s=s+n;}通过以上三种形式比较,我们可以看到在循环结构中,初值(包括循环变量的初值和计算结果初值等)与循环条件是相互影响的,所以为了避免出错,可以通过验算循环结构开始和结束的运行状态,如上例中代入n=1、n=
6、2以及n=99、n=100,进一步判断是否合要求。习惯上,累计求和的初值为0,累计求积的初值为1,所以推荐原程序的形式。在循环结构设计中,特别需要注意的是:避免死循环。循环体中必须有改变条件的语句,并且可以使程序执行到某一时刻不满足这个条件而结束循环。Ctrl+break练习1:从键盘输入n,求1+2+……+n的结果并输出。练习2:求5!的阶乘#includemain(){intp=1,i=1;while(i<=5){p=p*i;i++;}printf("%d",p);}intcount=0;printf("inputast
7、ring:");while(getchar()!='')count++;以下程序段的功能是什么?循环结束后,count代表什么含义?【案例4-2】输入20个学生的C语言课程考试成绩,求最高成绩和最低成绩。分析:这是一个求最大值和最小值的问题,用“打擂台”的思路来解决。打擂台时,有一个人先站在台上,第二个人上台与之比武,胜者留在台上,败者下台。第三个人再上台与刚才的胜者比武,胜者留在台上。……直到比完19次,此时留在台上的就是20个人中的优胜者。现在用同样的办法找20个数中的最大者。先输入一个数,把它放到变量MAX中,然后输入第二个数并与M
8、AX比较,如果第二个数大于MAX,则由第二个数取代MAX的值。如此输入和比较19次,每次比较后,大者均放在MAX中,最后MAX中的值就是
此文档下载收益归作者所有