第五讲 C语言循环语句

上传人:痛*** 文档编号:244005308 上传时间:2024-10-02 格式:PPT 页数:28 大小:254KB
收藏 版权申诉 举报 下载
第五讲 C语言循环语句_第1页
第1页 / 共28页
第五讲 C语言循环语句_第2页
第2页 / 共28页
第五讲 C语言循环语句_第3页
第3页 / 共28页
资源描述:

《第五讲 C语言循环语句》由会员分享,可在线阅读,更多相关《第五讲 C语言循环语句(28页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,*,第五章 循环语句,10/2/2024,1,,,1,、,C,语言可实现循环的语句:,,用,goto,,和,if,构成循环,,,while,语句,,,do ~ while,语句,,,for,语句,,,5.1,概 述,10/2/2024,2,,说明:,,不能用整数作标号,,只能出现在,goto,所在函数内,且唯一,,只能加在可执行语句前面,,限制使用,goto,语句,,goto,,语句标号,;,,,….…..,,标号:语句,;,goto,语句,一般,格式:,2,、,goto,语句,,,含义 :

2、 无条件转移,10/2/2024,3,,一般形式,:,while(,表达式,),,,循环体,语句;,流程图,:,,表达式,循环体语句,假,(0),真,(,非,0),5.2 while,语句,10/2/2024,4,,特点:先判断表达式,后执行循环体,,几点说明:,,循环体有可能一次也不执行,,循环体可为任意类型语句,,下列情况,退出,while,循环,,条件表达式不成立(为零),,循环体内遇,break,return,goto,,无限循环,: while(1),,,循环体语句,;,,10/2/2024,5,,#include <,stdio.h,>,,main(),,{,int,i,

3、sum=0;,,i=1;,,while(i<=100),,{ sum=sum+i;,,i++;,,},,,printf("%d",sum,);,,},循环初值,循环终值,循环变量增值,循环条件,循环体语句,,100,,例: 用,while,循环求,,∑,n,,,n=1,10/2/2024,6,,例: 显示,1~10,的平方,#include <,stdio.h,>,,main(),,{,int,i=1;,,while(i<=10),,{,printf("%d,*%d=%d\n",i,i,i*i);,,,i,++;,,},,},运行结果:,,1*1=1,,2*2=4,,3*3=9,,4*4=1

4、6,,5*5=25,,6*6=36,,7*7=49,,8*8=64,,9*9=81,,10*,10,=100,10/2/2024,7,,一般形式:,,do,,,循环体语句;,,while(,表达式,);,执行流程:,,循环体语句,表达式,假,(0),真,(,非,0),5.3 Do-while,语句,10/2/2024,8,,特点:先执行循环体,后判断表达式,,说明:,,至少执行一次循环体,,do~while,可转化成,while,结构,表达式,循环体,假,(0),真,(,非,0),赋初值,While,循环,循环体语句,表达式,假,(0),真,(,非,0),Do-While,循环,10/2

5、/2024,9,,#include <,stdio.h,>,,main(),,{,int,i,sum=0;,,i=1;,,do,,{ sum+=i;,,i++;,,}while(i<=100);,,,printf("%d",sum,);,,},,,100,,例: 用,do~while,循环求,,∑,n,,,n=1,10/2/2024,10,,例,while,和,do~while,比较,#include <,stdio.h,>,,main(),,{,int,i,sum=0;,,,scanf("%d",&i,);,,do,,{ sum+=i;,,i++;,,}while(i<=10);,,

6、,printf("%d",sum,);,,},# include <,stdio.h,>,,main(),,{,int,i,sum=0;,,,scanf("%d",&i,);,,while(i<=10),,{ sum+=i;,,i++;,,},,,printf("%d",sum,);,,},10/2/2024,11,,,一般形式:,,for(,[,表达式,1,],;,[,,表达式,2,],;,[,,表达式,3,],),,,循环体语句;,执行流程:,,表达式,2,循环体语句,假,(0),真,(,非,0),表达式,1,表达式,3,5.4 for,循环,10/2/2024,12,,f

7、or,语句最简单应用形式,:,,for(,循环变量赋初值;循环条件;循环变量增值),,{,,,循环体语句;,,},说明:,,for,语句中,表达式,1,,表达式,2 ,,表达式,3,类型任意,都可省略,但分号;不可省,,无限循环,: for(;;),,for,语句可以转换成,while,结构,表达式,1;,,while(,表达式,2),,{,,,循环体语句;,,表达式,3;,,},例 用,for,循环求,∑,n,,#include <,stdio.h,>,,main(),,{,int,i,sum=0;,,for(i=1;i<=100;i++),,sum+=i;,,,printf("%d",s

8、um,);,,},,10/2/2024,13,,循环的嵌套,,三种循环可互相嵌套,,,层数不限,,外层循环可包含两个以上内循环,,,但不能相互交叉,,嵌套循环的执行流程,(1) while(),,{ ……,,while(),,{ ……,,},,…...,,},(2) do,,{ ……,,do,,{ ……,,}while( );,,…...,,}while( );,(3) while(),,{ ……,,do,,{ ……,,}while( );,,…….,,},(4) for( ; ;),,{ ……,,do,,{ ……,,}while();,,……,

9、,while(),,{ ……,,},,…...,,},嵌套循环的跳转,,禁止:,,1.,从外层跳入内层,,2.,跳入同层的另一循环,,3.,向上跳转,5.5,循环嵌套,10/2/2024,14,,例,:,我国古代数学家张丘建在,《,算经,》,中出了一道题“鸡翁一,,,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,,,问鸡翁、鸡母、鸡雏各几何?”,假设鸡翁数,为,x,,,鸡母数,为,y,,,鸡雏数,为,z,。列,方程为:,,x+y+z=100 ……,①,,5x+3y+z/3=100……,②,三个未知数,两个方程,问题解决之道:穷举法,,穷举解决之道:循环,解题思路:,,利用

10、以前学过的数学知识列方程。,10/2/2024,15,,算法如下:,,假设,x,、,y,已知,由方程,①,可以得出,z=100-x-y,,由条件可知,x,和,y,的值有限制,只可能在,0~100,之间。需要用二重循环实现。每个,x,和,y,的组合都对应一个,z,的值,如果,x,,,y,和,z,的值满足,方程,②,,即为所求,结果,x+y+z=100 ……,①,,5x+3y+z/3=100……,②,10/2/2024,16,,程序实现,1,、定义,3,个变量。用双,for,循环实现:,,,,int,x,y,z;,,for(x=0;x<=100;x++),,for(y=0;y<=100

11、;y++),,z=100-x-y;,,2,、,利用,if,语句判断,x,,,y,,,z,是否满足条件:,,,if(15*x+9*y+z==300),#include <,stdio.h,>,,main(),,{,,,int,x,y,z;,,for(x=0;x<=100;x++),,for(y=0;y<=100;y++),,{z=100-x-y;,,if(15*x+9*y+z==300),,,printf(“%,d%d,%d\n”,x,y,z,);,,},,},为什么不是,5*x+3*y+z/3==100,呢,10/2/2024,17,,#include <,stdio.h,>,,main(),

12、,{,,,int,x,y,z;,,for(x=0;x<=100;x++),,for(y=0;y<=100;y++),,{z=100-x-y;,,if(15*x+9*y+z==300&&z>=0),,,printf(“%,d%d,%d\n”,x,y,z,);,,},,},10/2/2024,18,,#include <,stdio.h,>,,main(),,{,,,int,x,y,z;,,for(x=0;x<=100;x++),,for(y=0;y<=100;y++),,,for(z,=0;z<=100;z++),,if(15*x+9*y+z==300&&x+y+z==100),,,printf

13、(“%,d%d,%d\n”,x,y,z,);,,,,},10/2/2024,19,,5.6,几种循环的比较,#include <,stdio.h,>,,main(),,{,int,i,sum=0;,,i=1;,,do,,{ sum+=i;,,i++;,,}while(i<=100);,,,printf("%d",sum,);,,},#include <,stdio.h,>,,main(),,{,int,i,sum=0;,,i=1;,,while(i<=100),,{ sum=sum+i;,,i++;,,},,,printf("%d",sum,);,,},#include <,stdio.

14、h,>,,main(),,{,int,i,sum=0;,,for(i=1;i<=100;i++),,sum+=i;,,,printf("%d",sum,);,,},,,100,,求,,∑,n,,,n=1,10/2/2024,20,,循环比较总结,1,、几种循环通常情况下可以互相替代,,2,、,while,和,do-while,循环,只在,while,后面指定循环条件,在循环体内应包含使循环趋于结束的语句;,for,循环比较灵活,循环趋于结束语句可以用在表达式,3,,也可以在循环体语句中完成。,,3,、,while,和,do-while,循环的循环变量初值应在,while,和,do-while,

15、循环之前完成。,,4,、三种循环都可以用,break,跳出,循环,用,continue,结束本次循环。,,10/2/2024,21,,,1,、,break,语句,,功能:在循环语句和,switch,语句中,终止并,,跳出循环体或开关体,,说明:,,break,只能,终止并跳出最近一层的结构,,break,不能用于循环语句和,switch,语句之外的任何其它语句之中,5.7 break,语句和,continue,语句,10/2/2024,22,,,表达式,……,,break;,,……,假,(0),真,(,非,0),while,do,……,,break;,,…...,表达式,假,(0),

16、真,(,非,0),while,表达式,2,……,,break;,,…...,假,(0),真,(,非,0),for,表达式,1,表达式,3,10/2/2024,23,,break,举例:输出圆面积,面积大于100时停止,#define PI 3.14159,,main(),,{,,,int,r;,,float area;,,for(r=1;r<=10;r++),,{ area=PI*r*r;,,if(area>100),,break;,,,printf("r,=%d,area=%.2f\n",r,area);,,},,},10/2/2024,24,,2,、,continue,语句,,功能:

17、结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断,,仅用于循环语句中,表达式,……,,continue;,,……,假,(0),真,(,非,0),while,真,(,非,0),do,……,,continue;,,…...,表达式,假,(0),while,表达式,2,……,,continue;,,…...,假,(0),真,(,非,0),for,表达式,1,表达式,3,10/2/2024,25,,例:把,100~200,之间的不能被,3,整除的数输出,main(),,{,,,int,n;,,for(n=100;n<=200;n++),,{if(n%3==0),,continu

18、e;,,,printf(“%d”,n,);,,},,},10/2/2024,26,,例 判断,m,是否素数,读入,m,k=,m,i=2,当i,,k,m,被,i,整除,真,假,用,break,,结束循环,i=i+1,i,,k+1,真,假,输出,:m”,是素数,”,输出,:m”,不,是素数,”,10/2/2024,27,,#include ",math.h,",,main(),,{,,,int,,m,i,k,;,,,printf("input,a number:");,,,scanf("%d",&m,);,,k=,sqrt(m,);,,for (i=2;i<=,k;i,++),,,if(m%i,==0) break;,,if (i>=k+1),,,printf("%d,is a prime number\,n",m,);,,else,,,printf("%d,is not a prime number\,n",m,);,,},10/2/2024,28,,

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!