5循环结构程序设计.ppt
《5循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《5循环结构程序设计.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章循环结构程序设计循环结构程序设计当某段当某段程序要重复执行程序要重复执行时时,使用循环结构使用循环结构使程序精炼使程序精炼C语言提供语言提供4种循环控制语句种循环控制语句:while语句语句do-while语句语句for语句语句if-goto语句(不提倡多用)语句(不提倡多用)5.1 while语句语句“当型当型”循环结构循环结构形式:形式:While(条件表达式条件表达式)语句语句表达式表达式语句语句非非0 00 0执行过程:执行过程:当表达式的值为真当表达式的值为真(非零非零)时,重复执行语句,直时,重复执行语句,直到逻辑表达式的值为假,到逻辑表达式的值为假,跳出循环。跳出循环。
2、特点:特点:先判断表达式,后执行语句先判断表达式,后执行语句流程图流程图例例5.1-1200i=1i例例5.1-25.1-2求求 。加数的范围:加数的范围:i=1i=200,sum=0;求和过程:求和过程:sum=sum+i;i+;此时此时,sum=1;i=2;sum=sum+i;i+;此时此时,sum=1+2;i=3;sum=sum+i;i+;此时此时,sum=1+2+3;i=4;sum=sum+i;i+;此时此时,sum=1+2+199;i=200;sum=sum+i;i+;此时此时,sum=1+2+199200;i=201;i=1;i=200sum+=i;i+;YN输出输出sum结束结束
3、开始开始sum=0;#includemain()inti,sum=0;i=1;while(i=200)sum=sum+i;i+;printf(sum=%dn,sum);例例5.2 5.2 读程序读程序分析:分析:偶数和放在偶数和放在even中,中,even=2+4+6+100;奇数和放在奇数和放在odd中,中,odd=1+3+5+99;计数器计数器n初值初值=1.while(n100)odd=odd+n;even=even+(n+1);n=n+2例例5.3例例5.4输出输出10个个*号号非非0 0i=10i=10打印星号打印星号0 0i+i+;#includemain()inti;i=1;/*
4、循环控制初值循环控制初值*/while(i=10)/*循环体循环体*/printf(“*”);i+;/*逻辑逻辑表达式值可变表达式值可变*/5.2 do-while语句语句“直到型直到型”循环循环一般形式:一般形式:do语句语句while(表达式表达式);语句语句表达式表达式非非0 00 0do-while语句流程语句流程执行过程:执行过程:先执行循环体语句先执行循环体语句,再判断再判断while中的表达中的表达式式,若为真若为真,则继续执行则继续执行循环体循环体,否则,执行否则,执行while后面的语句。后面的语句。例例5.65.6任意输入一个整数任意输入一个整数,将该数各位倒序输出。将该数
5、各位倒序输出。程序一:用程序一:用while语句实现语句实现 此程序输入为此程序输入为0时没有输出时没有输出main()intnumber,digit;printf(pleaseinputdata:);scanf(%d,&number);while(number!=0)digit=number%10;printf(%d,digit);number=number/10;main()intnumber,digit;printf(pleaseinputdata:);scanf(%d,&number);dodigit=number%10;printf(%d,digit);number=number/1
6、0;while(number!=0);此程序输入为此程序输入为0时仍有输出时仍有输出程序二:用程序二:用do-while语句实现语句实现200n=1n例例5.75.7.求求 。#includemain()inti,sum=0;i=1;do sum=sum+i;i+;while(i=200);printf(sum=%dn,sum);说明:当两者具有相同的循环体时说明:当两者具有相同的循环体时1.当当while 后面的表达式后面的表达式第第1次次的值的值为为“真真”时,两种循环得到的时,两种循环得到的结果相同。结果相同。2.否则,否则,二者二者结果不相同。结果不相同。main()intsum=0,
7、i;scanf(%d,&i);do sum=sum+i;i+;while(i=10);printf(sum=%d,sum);main()intsum=0,i;scanf(%d,&i);while(i=10)sum=sum+i;i+;printf(sum=%d,sum);当当i=1时时:sum=55当当i=11时时:sum=0当当i=1时时:sum=55当当i=11时时:sum=11在在do_while循环循环语句中需要注意,即与语句中需要注意,即与while循循环环的不同点:的不同点:1.与与while循环语句的区别,循环语句的区别,至少执行一次循环体至少执行一次循环体2.do_while循环
8、语句中的循环语句中的while()后面有分号;后面有分号;5.3for语句语句百鸡问题百鸡问题现在用百钱买百鸡,问这现在用百钱买百鸡,问这100100只鸡中,公鸡、母鸡只鸡中,公鸡、母鸡和小鸡各有多少只和小鸡各有多少只?5钱钱3钱钱1钱钱公鸡每只公鸡每只5 5文钱,文钱,母鸡每只母鸡每只3 3文钱,文钱,3 3只小鸡只小鸡1 1文钱。文钱。?cock取值范围是取值范围是1-20hen取值范围是取值范围是1-33chick取值范围是取值范围是3-99设公鸡、母鸡、小鸡的数量分别为设公鸡、母鸡、小鸡的数量分别为cock,hen,chick;cock,hen,chick为整数且为整数且chick是是
9、3的倍数的倍数.可用穷举法遍历所有可用穷举法遍历所有cock,hen,chick的可能组合来求解的可能组合来求解循环语句循环语句?问题归结为求不定方程组的整数解:问题归结为求不定方程组的整数解:一般形式:一般形式:for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句计算表达式计算表达式1 1计算表达式计算表达式2 2语句语句计算表达式计算表达式3 3非非0 00 0for(i=0;in;i+)for语句语句循环控制变量循环控制变量赋初值赋初值条件表达式条件表达式改变循环条件改变循环条件例例语句;语句;for语句的其它形式语句的其它形式for(表达式表达式1;表达式表达式2;表达式表
10、达式3)表达式表达式1;表达式表达式3;不判断循环条件,不判断循环条件,成为死循环成为死循环200n=1n例例1 1.求求 ,用,用forfor语句实现。语句实现。#includemain()inti,sum=0;i=1;while(i=200)sum=sum+i;i+;printf(sum=%dn,sum);for(i=1;i=200;i+)sum=sum+i;例例2:2:用用forfor语句实现求语句实现求n!n!。#includemain()inti,fact=1,n;printf(Pleaseinputn:);scanf(%d,&n);for(i=1;i=n;i+)fact*=i;pr
11、intf(“%d!=%dn,n,fact);思考:思考:如何求如何求s=1!+2!+n!?例例3例例4 4.求求100100个数的最小值。个数的最小值。#includemain()floatx;inti;floatmin;printf(输入第输入第1个数个数:);scanf(%f,&x);min=x;for(i=2;i=100;i+)printf(输入第输入第%d个数个数:,i);scanf(%f,&x);if(x min)min=x;printf(最小值最小值=%fn,min);例例5 5.判断判断m m是否为素数。是否为素数。#includemain()intm,i,flag;printf
12、(nInputintegerm:);scanf(%d,&m);flag=1;for(i=2;im;i+)if(m%i=0)flag=0;i=m;if(flag=1)printf(%disprimen,m);elseprintf(%disnotprimen,m);分析分析:for语句、语句、while语句和语句和do-while语句的区别语句的区别ufor语句的循环次数由其中的语句的循环次数由其中的3个表达式决定个表达式决定,适合适合实现明确循环次数的循环结构。实现明确循环次数的循环结构。uwhile和和do-while语句适用于已知结束条件的循环,语句适用于已知结束条件的循环,在循环体中应存在
13、让在循环体中应存在让判断条件判断条件改变的语句。改变的语句。uwhile语句之前必须预先设置判断的初始条件。语句之前必须预先设置判断的初始条件。uwhile和和for语句是先判断后执行语句是先判断后执行,所以循环体最少所以循环体最少执行次数为零执行次数为零;而而do-while语句是先执行后判断语句是先执行后判断,循循环体最少执行环体最少执行1次。次。whilewhile语句多用于语句多用于语句多用于语句多用于循环次数不定循环次数不定循环次数不定循环次数不定的情况的情况的情况的情况do-whiledo-while语句多用于语句多用于语句多用于语句多用于至少要运行一次至少要运行一次至少要运行一次
14、至少要运行一次的情况的情况的情况的情况forfor语句语句语句语句多用于要多用于要多用于要多用于要赋初值赋初值赋初值赋初值或或或或循环次数固定循环次数固定循环次数固定循环次数固定的情况的情况的情况的情况5.5 循环的嵌套循环的嵌套在循环语句的循环体中又包含另外的在循环语句的循环体中又包含另外的完整完整的循环语句;个数和形式都任意。的循环语句;个数和形式都任意。说明:说明:1、三种循环可互相嵌套、三种循环可互相嵌套,层数不限层数不限,每层可有多个循环每层可有多个循环2、外循环每执行一次循环体、外循环每执行一次循环体,内循环要完整执行一遍内循环要完整执行一遍3、各种循环可以和各种选择结构相互嵌套、
15、各种循环可以和各种选择结构相互嵌套for(;).for(;).在循环语句的循环体中在循环语句的循环体中完整完整的包含另一个循环结构。的包含另一个循环结构。外循环每执行一次外循环每执行一次循环体循环体,内循环要内循环要完整的执行一遍完整的执行一遍内外循环的循环控制变内外循环的循环控制变量不同量不同外外循循环环内内循循环环2.嵌套的循环控制变量不能相同嵌套的循环控制变量不能相同3.内循环变化快,外循环变化慢;外循环每执行一次循环内循环变化快,外循环变化慢;外循环每执行一次循环体体,内循环要完整执行一遍。内循环要完整执行一遍。4.正确确定循环体正确确定循环体main()inti,j;for(i=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环结构程序设计 循环 结构 程序设计
限制150内