第4章循环结构设计(第7次课).ppt_第1页
第4章循环结构设计(第7次课).ppt_第2页
第4章循环结构设计(第7次课).ppt_第3页
第4章循环结构设计(第7次课).ppt_第4页
第4章循环结构设计(第7次课).ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 循环结构程序设计,2020/7/6,2,C语言中提供三种类型的循环结构.分别是: while() 当循环结构 do- while();直到型循环结构 for( ;) 次数循环结构,2020/7/6,3,3.3.1 当循环结构 while语句 格式:while(表达式) 语句; 功能: 计算表达式值,其值若为真(非0)则反复执行语句,直到表达式的值为假时为止。,2020/7/6,4,说明: (1)表达式用来描述循环条件的,可以是任何类型,常用的是关系型或逻辑型表达式。 (2)重复执行的操作称为“循环体”,在格式中表示为语句,它可以是任何一条或复合语句。 (3)在循环体中可以包含“循环语句

2、”,这种程序结构称为循环嵌套,也称为多重循环。 (4)while循环执行原则是“先判断,后执行”。即当表达式条件满足时执行循环体,条件不满足时结束循环转去执行循环语句后的下一条语句。,2020/7/6,5,结束循环,2020/7/6,6,【例3.11】 第一行输出数字0,1,2,3,4,并要求每个数字间隔4个字符位,第二行输出“We are out of the loop.”。#include main() int i=0; while(i5) printf(%d ,i+); printf(“nWe are out of the loop.n); ,0 1 2 3 4 We are out o

3、f the loop.,2020/7/6,7,分析:(1)设加数为i ; i是从1(初值)开始到100(终值)结束; 变化规律(步长值)为i=i+1(i+); 变量 i满足了三个基本条件,即: 有一个明确的初值 明确的终值 明确的步长值 则变量i 可以作为循环控制变量(2)设累加和用sum表示; 初值为0 sum 随加数 i 而变化执行sum=sum+i 并由此语句与i=i+1构成了循环体。,【例3.12】 求s=1+2+3100,2020/7/6,8,#include main() int i=1,sum=0; while(i101) sum=sum+i; i+; printf(%dn,su

4、m); ,2020/7/6,9,【例】 求任意10个实数的代数和。,10个数据通过键盘逐个输入,其执行语句是: scanf(%f,x); (2) 每当输入1 个x后执行: sum=sum+x (3) 设 i 为循环控制变量, 只控制循环的次数而不参加运算 i 的初值 为1, 终值为10, i 的步长值是i+,注意:键盘给值的格式,2020/7/6,10,#include main() int i=0; float x,sum=0; while(i10) scanf(%f, ,2020/7/6,11,3.3.2 直到循环结构 do-while语句,do 语句;(循环体) while(表达式);

5、功能: 先执行循环体,然后计算表达式值,其值若为真(非0)则继续执行循环体,直到表达式为假时为止。,2020/7/6,12,2020/7/6,13,#include main() int i=1,sum=0; do sum=sum+i; i+; while(i=100); printf(%dn,sum);,【例3.13】用do-while循环改写例3.12,2020/7/6,14,练习,以下程序的运行结果是( )。 #include main() int y=10; do y- -; while(- -y); printf(%dn,y- -); A. 1 B. 2 C. -1D. 0,2020

6、/7/6,15,【例3.14】while和do-while循环的比较,(1) main() (2) main() int i,sum=0; int i,sum=0; scanf(%d, printf(“sum=%d”,sum); printf(sum=%d,sum); ,2020/7/6,16,练习,在c语言中while循环和do-while循环的主要区别是 ( )。 A. do-while循环体内可以使用break语句,while循环体内不能使用break语句 B. do-while的循环体至少无条件执行一次,while的循环体不是 C. do-while循环体内可以使用continue语句

7、,while循环体内不能使用continue语句 D. while的循环体至少无条件执行一次,do-while的循环体不是,2020/7/6,17,3.3.3 次数循环结构 for语句 格式:for(表达式1;表达式2;表达式3) 语句; 功能: 根据循环控制变量的初值、终值和步长值,重复执行循环体。 流程图如 while 循环.,2020/7/6,18,【例3.15】将例3.15改用for语句书写。 #include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(sum=%d,i=%dn,sum,i); ,2020/7/6,19,说

8、明: (1)for语句中的表达式,分别对应着循环控制中的三个基本组成部分,即: 表达式1:循环控制变量的初始化(只执行1次),允许是逗号表达式。 表达式2:循环判断条件,是循环的入口,若条件满足则执行循环体,否则结束循环。 表达式3:改变循环控制变量操作(循环控制变量的增量),执行完循环体后,执行该语句;执行完毕,转去执行表达式2。,2020/7/6,20,(2)循环体由“语句”部分来描述,和其它循环一样。它也可以是一条语句、空语句或复合语句。 (3)for循环语句的表达式1 和表达式3 都可以是逗号表达式。表达式3也可以出现在循环体中。如for(x=1;x10;) sum=sum+x;x+;

9、。循环控制变量增量在循环体内完成,但格式中的“;”不能丢。 (4)for(;x100;x+=10) 其中x的初值在for语句前完成,但格式中的“;”不能丢。,2020/7/6,21,例题 1. 求:sum=5+10+100 for(i=5;i=100;i+=5) 2. 求:sum=0.1+0.2+1.0 for(i=0.1;i=1.0;i+=0.1),2020/7/6,22,练习,1、 void main() int i; for(i=0; i3; i+) switch(i) case 1: printf(%d, i); case 2: printf(%d, i); default : pri

10、ntf(%d, i); 执行后输出结果是( )。 A. 011122 B. 01222 C. 012020 D. 120,2020/7/6,23,2、 以下程序段执行后变量sum的值( )。 int i,j=1,sum=0; for(i=1;i=3;i+) sum+=j; j+; A. 5 B. 3C. 6D. 4,2020/7/6,24,三种循环语句的比较 1for 语句与while语句执行过程相同,但for语句简洁、清晰,它将初始条件、判断条件和循环变量的在一行书写,显得直观、明了。 2while 和do-while语句的循环控制变量初始化是在循环语句之前完成,而for语句循环变量的初始化

11、是在for中(表达式1)中,也可以在for语句前实现。 如:x=1; 3for语句和while语句是判断条件后执行循环体;而do-while是先执行循环体后判断条件,无论条件是否满足都要执行一次循环体。,2020/7/6,25,3.4.4 循环嵌套与多重循环,在一个循环的循环体内又包含另一个循环,称为循环嵌套。两层循环嵌套结构称为双层循环;两层以上的嵌套结构,则称为多重循环。,2020/7/6,26,例如,【例】求5学生的3门课程的平均成绩,2020/7/6,27,#include main() int i,j; float x,sum=0; for(i=1;i=5;i+) sum=0; fo

12、r(j=1;j=3;j+) scanf(%f, ,2020/7/6,28,问题 内循环执行次数,外循环执行次数?,2020/7/6,29,3.4 break语句和continue语句,3.4.1 break语句 格式:break; 功能:强制中断当前的循环, 不再执后面的循环语句而退出循环(结束循环)。,2020/7/6,30,例3计算半径r=1到10时的面积,直到面积大于100为止 #include #define PI 3.1415926 main() int r; float area; for(r=1;r100) break; printf(area=%f,area); ,2020/7

13、/6,31,【例3.18】从键盘上输入若干个字符,以回车换行符作为结束(称为终止标志),统计有效字符个数。,2020/7/6,32,练习,在循环语句的循环体中,break语句的作用是 ( )。 A. 暂停程序的运行 B. 结束本次循环 C. 继续执行break语句之后的循环体各语句 D. 提前结束循环,接着执行该循环后续的语句,2020/7/6,33,3.4.2 continue 语句 格式:continue; 功能:continue语句的作用是跳过循环体中剩余的语句而转移到执行下一次循环。 说明: (1)continue语句只用在for、while、do-while等循环体中, 通常与if条

14、件语句一起使用, 用来加速循环。 (2)循环体中单独使用continue 语句无意义。,2020/7/6,34,2020/7/6,35,【例3.19】输出找出100到200之间能被3整除的自然数,#include main() int n; for(n=100;n=200;n+) if(n%3!=0) continue; printf(%d, ,n); ,2020/7/6,36,Break与continue 练习,1、以下程序段运行后变量n的值为( )。 int i=1,n=1; for (;i3;i+) continue;n=n+i; A. 4 B. 3 C. 2 D. 1,2020/7/6

15、,37,2、以下程序的运行结果是( )。 main() int s = 0, i = 0; while(i 8) i+; if(i%2=0) continue; s+=i; printf(%dn,s); A. 36 B. 7 C. 16 D. 12,2020/7/6,38,3、若x、y是int型变量,则执行以下语句后x 的值是。 for(y=1,x=1;y=10) break; if(x%2=1) x+=5;continue; x-=3; A1 B6 C7 D10,2020/7/6,39,4. 以下程序是输出100以内能被3整除并且个位数为6的所有整数,请填空。 main() int j,i;

16、 for(i=0; i=9;i+) j=i*10+6; if( ) continue; printf(“%d ”,j); ,2020/7/6,40,5、分析程序运行结果: main() int i, s=0; for(i=1; i5) break; printf(s=%dn, s); ,2020/7/6,41,循环结构 练习,2020/7/6,42,1.下面程序段 int k=2; while (k=0) printf(“%d”,k); k-; 则下面描述中正确的是 。 A)while循环执行10次 B)循环是无限循环 C)循环题语句一次也不执行 D)循环体语句执行一次,一选择题,2020/7

17、/6,43,2.以下for循环的执行次数是 。 for (x=0,y=0; (y=123) A)无限循环 B)循环次数不定 C)4次 D)3次,2020/7/6,44,3.以下程序段的循环次数是 。 for (i=2; i=0; ) printf(“%d”,i-) ; A)无限次 B)0次 C)1次 D)2次,2020/7/6,45,4.下面程序段的运行结果是 。 x=y=0; while (x15) y+,x+=+y ; printf(“%d,%d”,y,x); A)20,7 B)6,12 C)20,8 D)8,20,2020/7/6,46,5.下述程序段的运行结果是 。 int a=1,b

18、=2,c=3, t; while (abc) t=a; a=b; b=t; c-; printf(“%d,%d,%d”,a,b,c); A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1,2020/7/6,47,6、下述语句执行后,变量k的值是 。 int k=1; while (k+10); A)10 B)11 C)9 D)无限循环,值不定,2020/7/6,48,二、程序题,2020/7/6,49,【例 1】使 用公式/4=1-1/3+1/5-1/7+ ,求值。要求直到其最后一项的近似值的绝对值小于10-6为止。 #include #include main() int s=1; float n=1.0,t=1,pi=0; while(fabs(t

温馨提示

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

评论

0/150

提交评论