为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

第6章_循环控制

2011-04-23 32页 ppt 714KB 29阅读

用户头像

is_753342

暂无简介

举报
第6章_循环控制null第六章第六章 主要内容 主要内容6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循环 6.4 用do-while语句实现循环 6.5 用for 语句实现循环 6.6 循环的嵌套 6.7 几种循环的比较 6.8 break语句continue和语句 6.9 程 序 举 例 6.1 概述 6.1 概述什么是循环? 为什么要使用循环?问题2:求学生平均成绩 分数相加后除以课数 在许多问题中需要用到循环控制。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择...
第6章_循环控制
null第六章第六章 主要内容 主要内容6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循环 6.4 用do-while语句实现循环 6.5 用for 语句实现循环 6.6 循环的嵌套 6.7 几种循环的比较 6.8 break语句continue和语句 6.9 程 序 举 例 6.1 概述 6.1 概述什么是循环? 为什么要使用循环?问题2:求学生平均成绩 分数相加后除以课数 在许多问题中需要用到循环控制。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。 6.2 goto语句以及用goto语句构成循环 6.2 goto语句以及用goto语句构成循环 goto语句——无条件转向语句 goto 语句标号; 语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。 例如:goto label_1; 合法; goto 123; 不合法. 6.2 goto语句以及用goto语句构成循环 6.2 goto语句以及用goto语句构成循环 结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使程序流程无规律、可读性差。 一般来说,可以有两种用途: (1) 与if语句一起构成循环结构; (2) 从循环体中跳转到循环体外。 但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用。 6.3 用while语句实现循环 6.3 用while语句实现循环while语句用来实现“当型”循环结构。 一般形式: while (表达式) 语句 当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。 6.3 用while语句实现循环 6.3 用while语句实现循环注意: 循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。 在循环体中应有使循环趋向于结束的语句。如果无此语句,则i的值始终不改变,循环永不结束。null用while语句求 #include void main ( ) { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d\n",sum); } 6.4 用do-while语句实现循环 6.4 用do-while语句实现循环 do-while语句的特点:先执行循环体,然后判断循环条件是否成立。 一般形式: do 循环体语句 while (表达式);执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。 null用while语句求 #include void main ( ) { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100); printf("%d\n",sum); } 6.4 用do-while语句实现循环 6.4 用do-while语句实现循环while语句和用do-while语句的比较: 在一般情况下,用while语句和用do-while语 句处理同一问题时,若二者的循环体部分是一 样的,它们的结果也一样。但是如果while后面 的表达式一开始就为假(0值)时,两种循环的结 果是不同的。 null#include void main ( ) {int sum=0,i; scanf(“%d”,&i); while(i<=10) {sum=sum+i; i++; } printf(“sum=%d”,sum); }#include void main ( ) {int sum=0,i; scanf(“%d”,&i); do {sum=sum+i; i++; } while(i<=10); printf(“sum=%d”,sum); } 6.5 用for 语句实现循环 6.5 用for 语句实现循环 C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。 一般形式: for(表达式1;表达式2;表达式3) 语句 6.5 用for 语句实现循环 6.5 用for 语句实现循环 for语句的执行过程: (1) 先求解表达式1。 (2) 求解表达式2,若其值为真(值为非0),则执 行for语句中指定的内嵌语句,然后执行下 面第(3)步。若为假(值为0),则结束循环, 转到第(5)步。 (3) 求解表达式3。 (4) 转回上面第(2)步骤继续执行。 (5) 循环结束,执行for语句下面的一个语句 6.5 用for 语句实现循环 6.5 用for 语句实现循环 注意: C语言中的for语句比其他语言(如BASIC,PASCAL)中的FOR语句功能强得多。可以把循环体和一些与循环控制无关的操作也作为表达式1或表达式3出现,这样程序可以短小简洁。但过分地利用这一特点会使for语句显得杂,可读性降低,最好不要把与循环控制无关的内容放到for语句中。 6.6 循环的嵌套 6.6 循环的嵌套 一个循环体内又包含另一个完整的循环结构 称为循环的嵌套。内嵌的循环中还可以嵌套 循环,这就是多层循环。 三种循环(while循环、do-while循环和for循 环)可以互相嵌套。 6.6 循环的嵌套 6.6 循环的嵌套 下面几种都是合法的形式: (1) while( ) (2) do (3) for(;;) {… {… { while( ) do for(;;) {…} {… } {… } } while( ); } } while( ); 6.6 循环的嵌套 6.6 循环的嵌套 (4) while( ) (5) for(;;) (6) do {… {… {… do{…} while( ) for(;;){ } while( ) { } … {…} … } } } while( ) 6.7 几种循环的比较 6.7 几种循环的比较 (1)四种循环都可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡用goto型循环。 (2)在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)。 6.7 几种循环的比较 6.7 几种循环的比较 for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。 (3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。 6.7 几种循环的比较 6.7 几种循环的比较 (4)while循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句见下节)。而对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。 6.8 break语句和continue语句 6.8 break语句和continue语句 6.8.1 break语句 break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句 一般形式: break; 注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。 6.8 break语句和continue语句 6.8 break语句和continue语句 例: float pi=3.14159; for(r=1;r<=10;r++) { area=pi*r*r; if(area>100) break; printf(″r=%f,area=%f\n″,r,area); } 程序的作用是计算r=1到r=10时的圆面积,直到面积area大于100为止。从上面的for循环可以看到:当area>100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。 6.8 break语句和continue语句 6.8 break语句和continue语句 6.8.2 continue语句 作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定. 一般形式: continue; 6.8 break语句和continue语句 6.8 break语句和continue语句 continue语句和break语句的区别 continue语句只结束本次循环,而不是终止整个循环的执行。 while(表达式1) for { … if(表达式2) continue; … }0 6.8 break语句和continue语句 6.8 break语句和continue语句 continue和break的区别 break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。 while(表达式1) for { … if(表达式2) break; … } 6.9 程序举例 6.9 程序举例 例6.6用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于为止。 N-S图表示算法 6.9 程序举例 6.9 程序举例 例6.7 求Fibonacci数列前40个数。这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即: F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n≥3) 算法如图所示: 6.9 程序举例 6.9 程序举例 例6.8 判断m是否素数。 算法思想:让m被2到除,如果m能被2~之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即);如果m不能被2~k(即)之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2~k之间任一整数整除过,因此输出“是素数”。 null 6.9 程序举例 6.9 程序举例 例6.10 译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。 思路:可以按以下规律将电文变成密码: 将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。 null
/
本文档为【第6章_循环控制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索