欢迎来到天天文库
浏览记录
ID:37421741
大小:752.81 KB
页数:64页
时间:2019-05-12
《循环结构程序设计2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章循环结构程序设计顺序结构和选择结构中的语句最多只执行一遍,有些语句可能不执行就跳过了。当程序中出现需要反复执行相同的代码时,就要用到循环结构。循环结构既可以简化程序,又可以提高程序的效率。例如,要计算全校学生的平均成绩,求若干个数之和。几乎所有实用的程序都包含循环。5.1为什么需要循环控制循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。C语言提供了多种循环语句,可以组成各种不同形式的循环结构。循环的类型:无休止的循环(
2、死循环)有终止的循环C语言中的三种循环结构while语句do…while语句for语句5.2用while语句实现循环⑴【一般格式】while(表达式){循环体语句}(while语句是一种先判断后执行的循环语句.)⑵【流程图及N-S图】一.While循环语句//“表达式”一般为关系表达式或逻辑表达式。//循环体可以是单个语句,也可是多个语句;如果是多个语句必须使用大括号“{}”将多个语句括起来构成一个复合语句。先计算表达式的值并判断,若表达式的值为真(非零),则执行循环体的语句;若表达式的值为假(零)时,结束循环。⑶【执行过程】
3、例:main(){inti=0;while(i<4)printf(“%d”,i++);printf(“end”);}while(e),则e等价于:A、e==0B、e==1C、e!=0D、e!=1inta=6,while(a--),循环次数是()。利用while语句求1+2+3+4+5sum=sum+I:i++假真I<=5例2:利用while语句计算n!(即:1*2*3*…*(n-1)*n)s=s*i:i++假真i<=nmain(){inti=1,n,s=1;scanf(“%d”,&n);while(i<=n){s=s*
4、i;i++;}printf("s=%d",s);}例:从0开始求奇数累加和,当和大于500时,结束求和过程。例:从键盘连续输入若干字符,并以回车作为结束标记,统计字符个数,不包括回车。5.3用do…while语句实现循环二.do—while语句⑴【一般格式】⑵【流程图及N-S图】循环体真假表达式do{循环体语句}while(表达式);do-while语句是一种先执行后判断的循环语句⑶【执行过程】先执行循环体语句,再计算表达式的值,若表达式的值为真(非零),再执行循环体的语句;当表达式的值为假(零)时,结束循环。⑷【应用】用
5、do—while语句求1+2+3+……+99+100的和main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d",sum);}sum=sum+i;i++;真假i<=100练习:用do—while语句编程计算n!(即:1*2*3*…*n)模仿上例同学们自己写出相应的程序。4.while与do-while语句的区别⑴while语句是先判断,后执行的循环语句;而do-while语句是先执行,后判断循环语句。⑵当第一次进行判断表达式的值时,表达式的值
6、为假时,while语句不执行循环体语句,而转去执行循环结构的下一语句;而do-while语句先执行一次循环体语句,而后转去执行循环结构的下一语句。⑶不论是while还是do-while语句构成的循环,在循环体中都应有修改循环控制变量值的语句,否则程序会进行无限循环状态。例:用公式求的近似值,直到某一项的绝对值小于10-6为止。#include#includeintmain(){intsign=1;doublepi=0.0,n=1.0,term=1.0;while(fabs(term)>=1e-
7、6){pi=pi+term;n=n+2;sign=-sign;term=sign/n;}pi=pi*4;printf("pi=%10.8f",pi);return0;}5.4用for语句实现循环一、for循环语句一般格式for(表达式1;表达式2;表达式3)循环体;相当于while循环语句:表达式1;while(表达式2){循环体语句(组);表达式3;}执行表达式1表达式2?循环体语句表达式3真假图5.4for语句的执行过程二、for循环语句的执行顺序(1)执行表达式1;(2)计算表达式2的值;(3)如果表达式2的值为真,
8、则执行循环体,再执行表达式3,转到(2)步执行;(4)如果表达式3的值为假,则结束循环的执行,转而去执行for语句后的语句。用for循环语句求解1+2+3+…+100main(){inti,s;s=0;for(i=1;i<=100;i++)/*i的值小于等于100时继续循环*
此文档下载收益归作者所有