收藏 分销(赏)

第五讲 C语言循环语句.ppt

上传人:pc****0 文档编号:13876692 上传时间:2026-04-29 格式:PPT 页数:28 大小:254KB 下载积分:10 金币
下载 相关 举报
第五讲 C语言循环语句.ppt_第1页
第1页 / 共28页
第五讲 C语言循环语句.ppt_第2页
第2页 / 共28页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第五章 循环语句,4/29/2026,1,1,、,C,语言可实现循环的语句:,用,goto,和,if,构成循环,while,语句,do while,语句,for,语句,5.1,概 述,4/29/2026,2,说明:,不能用整数作标号,只能出现在,goto,所在函数内,且唯一,只能加在可执行语句前面,限制使用,goto,语句,goto,语句标号,;,.,标号:语句,;,goto,语句,一般,格式:,2,、,goto,语句,含义:无条件转移,4/29/2026,3,一般形式,:,while(,表达式,),循环体,语句;,流程图,:,表达式,循环体语句,假,(0),真,(,非,0),5.2 while,语句,4/29/2026,4,特点:先判断表达式,后执行循环体,几点说明:,循环体有可能一次也不执行,循环体可为任意类型语句,下列情况,退出,while,循环,条件表达式不成立(为零),循环体内遇,break,return,goto,无限循环,:while(1),循环体语句,;,4/29/2026,5,#include,main(),int,i,sum=0;,i=1;,while(i=100),sum=sum+i;,i+;,printf(%d,sum,);,循环初值,循环终值,循环变量增值,循环条件,循环体语句,100,例:用,while,循环求,n,n=1,4/29/2026,6,例:显示,110,的平方,#include,main(),int,i=1;,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=81,10*,10,=100,4/29/2026,7,一般形式:,do,循环体语句;,while(,表达式,);,执行流程:,循环体语句,表达式,假,(0),真,(,非,0),5.3 Do-while,语句,4/29/2026,8,特点:先执行循环体,后判断表达式,说明:,至少执行一次循环体,dowhile,可转化成,while,结构,表达式,循环体,假,(0),真,(,非,0),赋初值,While,循环,循环体语句,表达式,假,(0),真,(,非,0),Do-While,循环,4/29/2026,9,#include,main(),int,i,sum=0;,i=1;,do,sum+=i;,i+;,while(i=100);,printf(%d,sum,);,100,例:用,dowhile,循环求,n,n=1,4/29/2026,10,例,while,和,dowhile,比较,#include,main(),int,i,sum=0;,scanf(%d,&i,);,do,sum+=i;,i+;,while(i=10);,printf(%d,sum,);,#include,main(),int,i,sum=0;,scanf(%d,&i,);,while(i=10),sum+=i;,i+;,printf(%d,sum,);,4/29/2026,11,一般形式:,for(,表达式,1,;,表达式,2,;,表达式,3,),循环体语句;,执行流程:,表达式,2,循环体语句,假,(0),真,(,非,0),表达式,1,表达式,3,5.4 for,循环,4/29/2026,12,for,语句最简单应用形式,:,for(,循环变量赋初值;循环条件;循环变量增值),循环体语句;,说明:,for,语句中,表达式,1,表达式,2,表达式,3,类型任意,都可省略,但分号;不可省,无限循环,:for(;),for,语句可以转换成,while,结构,表达式,1;,while(,表达式,2),循环体语句;,表达式,3;,例 用,for,循环求,n,#include,main(),int,i,sum=0;,for(i=1;i=100;i+),sum+=i;,printf(%d,sum,);,4/29/2026,13,循环的嵌套,三种循环可互相嵌套,层数不限,外层循环可包含两个以上内循环,但不能相互交叉,嵌套循环的执行流程,(1)while(),while(),.,(2)do,do,while();,.,while();,(3)while(),do,while();,.,(4)for(;),do,while();,while(),.,嵌套循环的跳转,禁止:,1.,从外层跳入内层,2.,跳入同层的另一循环,3.,向上跳转,5.5,循环嵌套,4/29/2026,14,例,:,我国古代数学家张丘建在,算经,中出了一道题“鸡翁一,,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,,问鸡翁、鸡母、鸡雏各几何?”,假设鸡翁数,为,x,,,鸡母数,为,y,,,鸡雏数,为,z,。列,方程为:,x+y+z=100 ,5x+3y+z/3=100,三个未知数,两个方程,问题解决之道:穷举法,穷举解决之道:循环,解题思路:,利用以前学过的数学知识列方程。,4/29/2026,15,算法如下:,假设,x,、,y,已知,由方程,可以得出,z=100-x-y,由条件可知,x,和,y,的值有限制,只可能在,0100,之间。需要用二重循环实现。每个,x,和,y,的组合都对应一个,z,的值,如果,x,,,y,和,z,的值满足,方程,,即为所求,结果,x+y+z=100 ,5x+3y+z/3=100,4/29/2026,16,程序实现,1,、定义,3,个变量。用双,for,循环实现:,int,x,y,z;,for(x=0;x=100;x+),for(y=0;y=100;y+),z=100-x-y;,2,、,利用,if,语句判断,x,,,y,,,z,是否满足条件:,if(15*x+9*y+z=300),#include,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,%dn”,x,y,z,);,为什么不是,5*x+3*y+z/3=100,呢,4/29/2026,17,#include,main(),int,x,y,z;,for(x=0;x=100;x+),for(y=0;y=0),printf(“%,d%d,%dn”,x,y,z,);,4/29/2026,18,#include,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(“%,d%d,%dn”,x,y,z,);,4/29/2026,19,5.6,几种循环的比较,#include,main(),int,i,sum=0;,i=1;,do,sum+=i;,i+;,while(i=100);,printf(%d,sum,);,#include,main(),int,i,sum=0;,i=1;,while(i=100),sum=sum+i;,i+;,printf(%d,sum,);,#include,main(),int,i,sum=0;,for(i=1;i=100;i+),sum+=i;,printf(%d,sum,);,100,求,n,n=1,4/29/2026,20,循环比较总结,1,、几种循环通常情况下可以互相替代,2,、,while,和,do-while,循环,只在,while,后面指定循环条件,在循环体内应包含使循环趋于结束的语句;,for,循环比较灵活,循环趋于结束语句可以用在表达式,3,,也可以在循环体语句中完成。,3,、,while,和,do-while,循环的循环变量初值应在,while,和,do-while,循环之前完成。,4,、三种循环都可以用,break,跳出,循环,用,continue,结束本次循环。,4/29/2026,21,1,、,break,语句,功能:在循环语句和,switch,语句中,终止并,跳出循环体或开关体,说明:,break,只能,终止并跳出最近一层的结构,break,不能用于循环语句和,switch,语句之外的任何其它语句之中,5.7 break,语句和,continue,语句,4/29/2026,22,表达式,break;,假,(0),真,(,非,0),while,do,break;,.,表达式,假,(0),真,(,非,0),while,表达式,2,break;,.,假,(0),真,(,非,0),for,表达式,1,表达式,3,4/29/2026,23,break,举例:输出圆面积,面积大于100时停止,#define PI 3.14159,main(),int,r;,float area;,for(r=1;r100),break;,printf(r,=%d,area=%.2fn,r,area);,4/29/2026,24,2,、,continue,语句,功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断,仅用于循环语句中,表达式,continue;,假,(0),真,(,非,0),while,真,(,非,0),do,continue;,.,表达式,假,(0),while,表达式,2,continue;,.,假,(0),真,(,非,0),for,表达式,1,表达式,3,4/29/2026,25,例:把,100200,之间的不能被,3,整除的数输出,main(),int,n;,for(n=100;n=200;n+),if(n%3=0),continue;,printf(“%d”,n,);,4/29/2026,26,例 判断,m,是否素数,读入,m,k=,m,i=2,当i,k,m,被,i,整除,真,假,用,break,结束循环,i=i+1,i,k+1,真,假,输出,:m”,是素数,”,输出,:m”,不,是素数,”,4/29/2026,27,#include,math.h,main(),int,m,i,k,;,printf(input,a number:);,scanf(%d,&m,);,k=,sqrt(m,);,for(i=2;i=k+1),printf(%d,is a prime number,n,m,);,else,printf(%d,is not a prime number,n,m,);,4/29/2026,28,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服