欢迎来到天天文库
浏览记录
ID:57057064
大小:516.00 KB
页数:65页
时间:2020-07-30
《c语言教程ppt第6章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、6.1 概述6.2 goto语句以及用goto语句构成循环6.3 while语句6.4 dowhile语句6.5 for语句6.6 循环的嵌套6.7 几种循环的比较6.8 break语句和continue语句6.9 程序举例习题第6章循环控制6.1概述在许多问题中需要用到循环控制。例如,要输入全校学生成绩;求若干个数之和;迭代求根等。几乎所有实用的程序都包含循环。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。因此熟练掌握选择结构和循环结构的概念及使用是程序设计的最基本的要求。(1)
2、用goto语句和if语句构成循环;(2)用while语句;(3)用do
3、while语句;(4)用for语句。在下面各节中将分别作介绍。6.2goto语句以及用goto语句构成循环goto语句为无条件转向语句,它的一般形式为goto语句标号;语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。不能用整数来做标号。例如:gotolabel-1;是合法的,而goto123;是不合法的。结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使程序流程无规律、可读性差。但也
4、不是绝对禁止使用goto语句。一般来说,可以有两种用途:(1)与if语句一起构成循环结构;(2)从循环体中跳转到循环体外,但在c语言中可以用break语句和continue语句(见6.8节)跳出本层循环和结束本次循环。goto语句的使用机会已大大减少,只是需要从多层循环的内层循环跳到外层循环外时才用到goto语句。但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用。例6.1用if语句和goto语句构成循环,求∑n。此问题的算法是比较简单的,可以直接写出程序:main(){inti,sum=0;i=
5、1;loop:if(i<=100){sum=sum+i;i++;gotoloop;}printf("%d",sum);}100n=1运行结果如下:5050这里用的是“当型”循环结构,当满足“i<=100”时执行花括弧内的循环体。请读者自己画出流程图。6.3 while语句while语句用来实现“当型”循环结构。其一般形式如下:while(表达式)语句当表达式为非0值时,执行while语句中的内嵌语句。其流程图见图6.1。其特点是:先判断表达式,后执行语句。图6.1图6.2例6.2求∑n。用传统流程图和NS结构流程图表示算法,见图6
6、.2(a)和图6.2(b)。根据流程图写出程序:main(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}100n=1需要注意:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。如果不加花括弧,则while语句的范围只到while后面第一个分号处。例如,本例中while语句中如无花括弧,则while语句范围只到“sum=sum+i;”。(2)在循环体中应有使循环趋向于结束的语句。例如,在本例中循环结束的条件是“i>100”,因此
7、在循环体中应该有使i增值以最终导致i>100的语句,今用“i++;”语句来达到此目的。如果无此语句,则i的值始终不改变,循环永不结束。6.4dowhile语句dowhile语句的特点是先执行循环体,然后判断循环条件是否成立。其一般形式为do循环体语句while(表达式);它是这样执行的:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。可以用图6.3表示其流程。请注意dowhile循环用NS流程图的表示形式(图6.3(b))。图6
8、.3例6.3用dowhile语句求∑n。先画出流程图,见图6.4。图6.4图6.5100n=1程序如下:main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}可以看到:对同一个问题可以用while语句处理,也可以用do-while语句处理。Do-while语句结构可以转换成while结构。图6.3可以改画成图6.5形式,二者完全等价。而图6.5中线框部分就是一个while结构。可见,do-while结构是由一个语句加一个while结构构成的。
9、若图6.1中表达式值为真,则图6.1也与图6.5等价(因为都要先执行一次语句)。在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。如例6.2和例6.3程序中的循环体是相
此文档下载收益归作者所有