欢迎来到天天文库
浏览记录
ID:43343515
大小:2.28 MB
页数:73页
时间:2019-10-08
《c语言程序设计 第5章_循环结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言程序设计教程(第2版)第5章循环结构第5章循环结构本章主要内容1.for循环语句结构2.while循环语句结构3.do-while循环结构4.break和continue语句的作用5.循环结构的嵌套6.案例分析循环就是重复地执行某些语句。程序中的循环次数是有限的,由循环条件决定可以确定循环次数。C语言提供了3种循环结构语句:①for语句②while语句③do_while语句for语句是一种计数循环。循环次数由循环变量来控制。for语句的一般形式:for([表达式1];[表达式2];[表达式3])循环体语句执行流程:表达式2循环体假(0)真(非0)for表达式1表达式3
2、5.1for语句1.先求解表达式1;2.求解表达式2,若其值为真(非0),则执行循环体的内容,然后执行第3步。若为假(0),则结束循环,执行for语句下面一条语句。3.若表达式为真,执行指定的语句后,求解表达式3。4.返回第2步执行。此处无;for语句的常用形式为:for(<初始表达式>;<条件表达式>;<循环表达式>){<循环体语句>}for语句的3个重要的组成部分:1.初始表达式——初始化循环控制变量。2.条件表达式——测试循环条件。3.循环表达式——更新循环控制变量的值。for语句的语法功能:1.计算<初始表达式>的值。该表达式是对循环控制变量进行初始化。2.判断<条
3、件表达式>的值。该表达式就是循环条件,若该表达式的值为“假”,则退出循环,执行循环结构外的语句;若该表达式的值为“真”,则执行<循环体语句>。3.计算<循环表达式>的值。该表达式更新循环控制变量的值。4.转第2步。for语句的流程图:注意:①若<循环体语句>中有多条语句,则构成复合语句,被包含在一对花括号中。②若<循环体语句>只有一条,可以不使用花括号。例1:编写程序,求几何级数之和:分析:该数学表达式为求1+2+3+…+100之和。设:sum为级数的和(初值为零);i为循环变量;将i从1按步长为1增加到100,循环计算:sum=sum+i;求得该级数的和。main(){in
4、ti,sum;sum=0;for(i=1;i<=100;i++)sum+=i;printf(“1+2+…+100=%d",sum);}for语句所具有的特性:1.<初始表达式>可以省略,但须保留分号(;),同时在for之前必须给循环控制变量赋值,形式为:<初始表达式>;for(;<条件表达式>;<循环表达式>)<循环体语句>2.<条件表达式>一般不可省略,否则为无限循环。例如:for(i=1;;i++)sum=sum+i;相当于条件总为真,程序会一直不停地执行直到“数据溢出”。例:main(){inti=0;for(;i<10;i++)putchar(‘a’+i);}#incl
5、udemain(){charc;for(;(c=getchar())!=‘’;)printf("%c",c);}例:main(){inti,sum=0;for(i=1;;i++)sum=sum+i;printf(“sum=%d”,sum);}此循环构成了一个死循环,即一直累加下去直至越界出错.解决的方法是:在循环体内增加一个break语句(待后介绍).3.<循环表达式>亦可省略,但在循环语句体中必须有语句来修改循环变量,以使条件表达式的值在某一时刻为假,使程序能正常结束循环。例如:for(sum=0,i=1;i<=100;){sum=sum+i;i+
6、+;}4.3个表达式均省略,即for(;;),为无限循环,程序中要尽量避免这种情况的发生。例:main(){inti,sum=0;for(i=1;i<=100;){sum+=i;i++;}printf("%d",sum);}此时由于省略表达式3,循环变量没有增值,循环易出现死循环。解决的方法是在循环体内加一条使得循环变量增值的语句(如本例中的“i++”)例:main(){inti,sum=0;i=1;for(;i<=100;){sum+=i;i++;}printf("%d",sum);}此时由于省略表达式1和3,只给出循环条件,此时的for语句就完全等同于后面要讲的while语句
7、。例:main(){inti,sum=0;i=1;for(;;){sum+=i;i++;if(i>100)break;}printf("%d",sum);}三个表达式均省略,此时的执行过程是不设初值,不判断条件(将表达2的值看成“真”。5.条件表达式可以是关系表达式、数值表达式。只要表达式的值不等于零,就执行循环体语句。如:for(i=0;(c=getchar())!='';i+=c);6.初始表达式、循环表达式可以是逗号表达式,用来完成逗号表达式中各表达式的功能。例如:fo
此文档下载收益归作者所有