chapter06循环控制.ppt_第1页
chapter06循环控制.ppt_第2页
chapter06循环控制.ppt_第3页
chapter06循环控制.ppt_第4页
chapter06循环控制.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第6章 循环结构设计,2,本章主要内容,C语言中的三种循环语句: while语句(当型) dowhile语句(直到型) for语句(当型) 循环体中的辅助控制语句: break语句 continue 语句 goto 语句,本章是 全书的重 点和难 点!,3,while 语句“当型”循环结构,一般形式: while (表达式)语句 说明: “表达式”为循环条件;“语句”为循环体。 特点: 先判断表达式,后执行语句,图6_1,【例6.1】求 。,图6_2,5,main() int i=1,sum=0; while(i=100) sum=sum+i; i+; printf(%d n,sum);

2、,编程求解:1+2+3+100?,图6_2,“i1”可否换成:“i0”,6,注意:,while语句中的“表达式”(即判断条件)可以是任意的表达式,但一般为关系表达式或逻辑表达式。 循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。 在循环体中应有使循环趋向于结束的语句,以免形成死循环。 允许循环体以空语句形式出现。,7,【例6.2】求2n。,main() int i=1,n; long int p=1; scanf(%d, ,图6_3,8,dowhile 语句“直到型”循环结构,一般形式: do 语句 while (表达式); 特点: 先执行一次指定的循环内嵌语句,然后判断

3、条件表达式。,图6_4,【例6.3】,#include main() char c; do c=getchar(); if(c=A ,将键盘输入字符中所有大写字母转换为小写字母,其他字符不变。,10,for 语句“当型”循环结构,一般形式: for(表达式1;表达式2;表达式3)语句 说明: 表达式1:循环变量赋初始值 表达式2:循环条件 表达式3:循环变量增值 语句:循环体,图6_5,11,【例6.4】求 。(改【例6.1】),main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(%d n,sum); ,12,三种循环的比较:,三种循

4、环都可以用来处理同一问题,一般情况下它们可以互相代替。 用while和do while循环时,循环变量初始化的操作在while 和do while语句前完成;for语句可以在表达式1中完成。,13,三种循环的比较(续):,while和do while循环只在while后面指定循环条件,且在循环体中应包含使循环趋于结束的语句;for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中,功能更强。 while 和for循环是先判断表达式,后执行语句;do while循环是先执行语句后判断表达式。,14,循环的嵌套,定义: 一个循环体中又包含一个完整的循环结构,称

5、为循环的嵌套。 说明: while 循环、do while循环和 for循环都可以进行嵌套,而且可以相互嵌套。,几种合法的嵌套结构:,16,使用循环嵌套时注意:,要保证嵌套的每一层循环在逻辑上都是完整的,避免嵌套交叉使用。 要保证循环到最后有一个跳出循环的条件,否则会产生死循环(嵌套循环中检查死循环错误,相对来说比较困难)。 在编程时,注意循环嵌套的书写最好用阶梯缩进的形式,可使程序层次分明。,main() int i,j; printf(n ); for(i=1;i=9;i+) printf(%4d,i); printf(n-); for(i=1;i=9;i+) printf(n%4d,i)

6、; for(j=1;j=i;j+) printf(%4d,i*j); ,【例6.5】输出九九表。,1 2 3 4 5 6 7 8 9 - 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81,break 语句无条件转移语句,一般形式:break; 功能: 用在switch语句中使流程跳出switch结构,继续执行switch语句后面的语句。 用在循环体内,迫使所在循环立即

7、终止(跳出当前循环体),继续执行循环体后面的第一条语句。 说明:break语句一般用于循环语句和switch语句。,19,【例6.6】把数316分为两个数之和,其中一个为13的倍数,一个为11的倍数。,main() int i=0; for(;i+) if(!(316-i*13)%11)break; printf(13*%d+11*%d=316n,i,(316-13*i)/11); ,continue语句无条件转移语句,一般形式:continue; 功能: 结束本次循环(跳过循环体中尚未执行的语句),接着进行是否执行下一次循环的判定。 continue和break的区别: continue只结

8、束本次循环,而非终止整个循环。 break则是结束所在循环,不再进行条件判断。,【例6.7】输出100200之间所有不能被3整除的数。,main() int n,count=0; for(n=100;n=200;n+) if(n%3=0)continue; printf(%4d,n); count+; if(count%10=0)printf(n); ,换成什么,可 不改变结果?,22,goto 语句,一般形式:goto 语句标号; 说明: goto为无条件转向语句。 语句标号必须是合法的标识符。不能用整数作标号。 用途: 与if语句一起构成循环结构; 从多层循环体的内层循环跳到外层循环。,结构化程序设计 方法主张限制使用 goto语句,因为滥用 goto语句将使程序流 程无规律、可读性差,只有不得已(如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论