第06章 循环结构程序设计.ppt_第1页
第06章 循环结构程序设计.ppt_第2页
第06章 循环结构程序设计.ppt_第3页
第06章 循环结构程序设计.ppt_第4页
第06章 循环结构程序设计.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章:循环结构编程,学习的意义,在很多实际问题上,经常需要有规律地重复某些任务。例如,食谱可能有“鸡蛋到泡沫”等程序。也就是说,鸡蛋没有做成泡沫状的时候,要反复打。该操作在电脑程序中表示为特定语句的迭代执行。这称为回路。让我们想想一个茄子问题:如何编程以计算1 2 3 100?过程如下:int s=0;s=s 1;s=s 2;s=s 3;S=s 100Printf (s=% d ,s);重复100次,眩晕!有更好的计算方法吗?是的!是循环编程。While、do-while、for语句循环嵌套Break、continue、goto语句exit()函数循环结构类型选择和转换循环结构编程示例牙齿章

2、节摘要、目标学习、了解循环结构的含义了解C语言三种茄子循环结构的特性。了解如何使用While、do-while、for、goto、break和continue语句了解其他循环结构的选择和转换方法。掌握混合控制结构编程方法。学习内容,6.1循环结构的编程,1 .while语句,常规格式:while(表达式)循环语句;执行进程:其中:while后面的圆括号()不能节省。While后面的表达式可以是任何类型的表达式,但通常是条件表达式或逻辑表达式。表达式的值是循环的控制条件。语句的一部分称为循环体,如果需要执行多个语句,则必须使用复合语句。特征:首先判断表达式,然后执行循环体,使用yeswhile语

3、句计算1100的累积总计。#include void main () int I=1,sum=0;while(I=100)sum=I;I;Printf (sum=%dn,sum);循环初始值,循环结束值,循环条件,循环主体,循环变量附加值,运行结果:sum=5050,yes110的平方表示法,# include voidmain();While (I=10) printf (%d *% d=% dn,I,I,I * I);I;执行结果:1 * 1=1 2 * 2=4 3 * 3=9 4 * 4=16 5 * 5=25 6 * 6=36 7 * 7=49 8 * 8=64 9 * 9(3)如果表

4、达式为false (0),则退出while循环。在循环体内遇到了break、return或goto语句。break和goto语句稍后将进行说明。while语句注释:int a=0,b=0;While (a 0) /a 0为false,b无法执行b。int num=0;/字符数while(1)if(getche()=n)/如果输入的字符是回车符,则返回return。Num,(4)循环控制变量必须在执行while语句之前初始化。否则,执行结果无法预测。(5)必须在while语句(表达式或循环体)中更改循环控制变量。否则,很容易形成死循环。(6)允许while语句的循环体又成为while语句,从而形

5、成双循环。while语句注释:示例:计算10!# include void main()int I;/I必须指定初始值10 long s=1。while(I=1)s *=I-;Printf (10!=%ldn,s):I=1;While (i 100) /死循环。I的值未更改,因此始终小于100 sum=I。Printf (sum=%dn,sum);I=1;while(I=9)j=1;While (j=9) printf (%d *% d=% dn,I,j,I * j);j;I;是求两个正整数的最大公共系数。使用Euclid(欧氏)算法查找最大的公共系数。牙齿算法是(1)输入两个正整数M和N。(

6、2) m除以n,剩下的是r,r牙齿0,那么n是最大的公共系数,算法结束。否则(3)。(3)将n旋转到m,将r旋转到n,旋转(2)。#include void main () int m、n、r;printf(please input two positive integer :);Scanf (%d%d,运行结果:please input two positive integer : 24 56 their greatest common divisor is 8,2。do _ whh While(表达式);执行进程:其中:while后面的圆括号()不能节省。While的最后一个分号;无法保存

7、。While后面的表达式可以是任何类型的表达式,但通常是条件表达式或逻辑表达式。表达式的值是循环的控制条件。语句的一部分称为循环体,如果需要执行多个语句,则必须使用复合语句。特征:首先运行循环体,然后确定表达式,使用yesdo _ while语句计算1100的累积总计。#include void main () int I=1,sum=0;do sum=I;I;while(I=100);Printf (sum=%dn,sum);执行结果:sum=5050,do_while语句注释:int a=0,b=0;do b;while(a 0);(1)如果do-while后面的表达式值从一开始就为fal

8、se,则循环执行一次。(2)在if语句、while语句中,不能在表达式后面添加分号,必须在do-while语句中的表达式后面添加分号。否则,将出现语法错误。(3)循环体中的语句可以是任何类型的c语句。(4)与while语句一样,使用do-while语句时,请不要忘记初始化循环控制变量。否则,执行结果无法预测。(5)在do-while语句(表达式或循环主体)中,必须更改循环控制变量的值。否则,很容易形成死循环。(6) do-while语句可以构造多个循环,也可以与while语句嵌套。3 .for语句,常规格式:for(表达式1;表达式2;表达式3)循环语句;执行进程:其中:for后面的圆括号()

9、不能节省。表达式1:赋值表达式,它通常将初始值赋给控制变量。表达式2:关系表达式或逻辑表达式,循环控制条件。表达式3:赋值表达式,它通常提供控制变量的增加或减少。表达式用分号分隔。语句的一部分称为循环体,如果需要执行多个语句,则必须使用复合语句。for语句很好地说明了正确表达循环结构时需要注意的三个茄子问题:控制变量的初始化。循环的条件。循环控制变量的更新。使用yesfor语句计算1100的累积总计。#include void main () int I,sum=0;for(I=1);I=100I)总计=I;Printf (sum=%dn,sum);执行结果:sum=5050,for语句注意事

10、项:例如,计算1*2 3*4 5*6 99*100。Int i、j;长累积量=0;For (I=1,j=2);I=99I=I 2,j=j 2)sum=I * j;Printf (sum=%ldn,sum);(1)表达式1、表达式2和表达式3可以是任何类型的表达式。例如,这三个茄子表达式都可以是逗号表达式。也就是说,每个表达式可以由多个表达式组成。逗号表达式,逗号表达式,#include void main () int i,sum=0;I=1;for(;I=100I)总计=I;Printf(sum=%dn,sum);#include void main () int i,sum=0;I=1;f

11、or(;I=100)总计=I;Printf(sum=%dn,sum);for语句注释:省略表达式1,3,省略表达式1,(2)表达式1,表达式2和表达式3是可以省略其中一个、两个或两个的选项。但是,用于间隔的分号不能节省一个或两个。#include void main () int i,sum=0;I=1;for(;if(I 100)break;总计=I;Printf(sum=%dn,sum);表达式1,2,3,for语句注意事项:for(a=1;如果A) printf(,(3)表达式2为空,则表达式2的对应值为true。死亡循环!(4)循环主体中的语句可以是任何类型的c语句。(5) for语句

12、可以构造多个循环,也可以与while语句和do-while语句嵌套。(6)循环体可以是空门。示例:计算用户输入的字符数(当输入是回车时统计信息结束)。# include void main()int n=0;Printf(输入a字符串:n);for(;Getchar()!=n;n);Printf (%d,n):表示循环体为空语句。不是表示for语句的结束。三个回路可以徐璐嵌套。外部循环可以包含三个以上的内部循环,但不能与徐璐嵌套循环的执行过程交叉。(1) while () while () while().(2) do do whiile.while();(3)while()do while(

13、);禁止嵌套循环跳转:从外部层跳转到内部层的其他循环向上跳转,4 .嵌套循环,yes嵌套循环,输出9表,#include void main () int i,j;for(I=1);I 10I) printf (M,I);printf(n-For(I=1);I 10I)for(j=1;J 10J) printf(j=9)?Mn : M、I * j);for(I=1;I10I)for(j=1;J10J) printf(j=9)?Mn:M、I * j);5 .break和continue语句,break语句功能:在循环语句和switch语句中,结束循环或交换机主体说明并转义:(1) break不能

14、用于循环语句和switch语句以外的所有语句。(2) break只能终止最近楼层的结构,然后跳下去。while(表达式1) if(表达式2)break;语句,do if(表达式2)break;While(表达式1);门,for(;表达式1;)if(表达式2)break;语句,是将用户输入的小写字母转换为大写字母,直到输入非小写字母为止。# include void main()char c;while(1)c=getchar();/读取文字if (c=a /结束回路,执行结果:howareyou HOWAREYOU,方法:设定旗标变数tag,然后在每个图层回路后加入if (tag) break

15、陈述式。值为1会从循环体中弹出,值为0则不会弹出。for()while()if()break;While循环后面的第一个语句,int tag=0;For () while () if()标签=1;布列克;If(标签)breakFor循环后的第一个语句,多个循环,使用break,问:如何从嵌套循环中取出break语句?continue语句函数:结束循环,跳过循环主体中未执行的语句,并确定下一次是否执行循环主体。说明:(1)仅用于循环语句。(2)对于嵌套循环,continue语句只对包含的最内侧循环语句起作用。for()while()if()continue;While循环后的第一条语句,yes将计算输入的10个整数中正数的数量和平均值。#include void main () int i,a,num=0;float sum=0;for(I=0);I 10I) scanf

温馨提示

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

评论

0/150

提交评论