六章循环结构程序设计.ppt
《六章循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《六章循环结构程序设计.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 循环结构程序设计六章循环结构程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第六章 循环结构程序设计6.1 while语句语句1.形式:while(表达式)循环体2.执行过程:先判断,后执行。循环体表达式非非0 00 0第六章 循环结构程序设计例1 用while语句求1+2+3+99+100的值。main()int sum=0,i=1;while(i=100)sum=sum+i;i+;printf(“%dn”,sum);sum=0i=1当i=100
2、sum=sum+ii=i+1输出sum的值第六章 循环结构程序设计3.说明(1)while语句是先判断,后执行。如果循环条件一开始就不成立(条件表达式为假),则循环一次都不执行。(2)while循环中的表达式一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零,就可执行循环体。(3)循环体为多条语句时,必须采用复合语句,要加上一对花括号。(4)循环体中必须有改变循环条件的语句,否则循环不能终止,形成死循环。第六章 循环结构程序设计#includemain()int m=0;char ch;ch=getchar();while(ch!=n)m+;ch=getchar();
3、printf(“%d”,m);ch=getchar()m=0当ch!=nm=m+1ch=getchar()输出m的值#includemain()int m=0;char ch;while(ch=getchar()!=n)m+;printf(“%d”,m);例2 从键盘连续输入字符,直到输入回车为止,统计输入的字符个数。第六章 循环结构程序设计6.2 do-while语句语句1.形式:do 循环体 while(表达式);2.执行过程:先执行,后判断。到此do-while语句结束循环体真假表达式第六章 循环结构程序设计例3 用do-while语句求1+2+3+99+100的值。main()int
4、sum=0,i=1;do sum=sum+i;i+;while(i100sum=sum+ii=i+1输出sum的值第六章 循环结构程序设计3.说明(1)do-while语句是先执行,后判断。如果循环的条件一开始就不成立,循环也将执行一次。(2)do-while循环中的表达式一般也是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零,就可执行循环体。(3)循环体为多条语句时必须采用复合语句。(4)与while语句一样,循环体中同样必须有改变循环条件的语句,否则循环不能终止,将形成死循环。(5)对于同一个问题,while循环与do-while循环的条件表达式是完全相同的。第六章
5、 循环结构程序设计#includemain()int m=0;char ch;ch=getchar();do m+;ch=getchar();while(ch!=n);printf(“%d”,m);ch=getchar()m=0直到ch=nm=m+1ch=getchar()输出m的值例4 从键盘连续输入字符,直到输入回车为止,统计输入的字符个数。第六章 循环结构程序设计6.3 for语句语句1.形式:for(表达式1 ;表达式2 ;表达式3)循环体2.执行过程:先判断,后执行。e2假真求解e1循环体求解e3循环变量赋初值循环条件循环变量增值第六章 循环结构程序设计例 for(a=1;a=3;a
6、+)printf(“%d”,a);执行步骤:执行a=1,a值为1。判断a=3,成立,输出1。执行a+,a值为2。判断a=3,成立,输出2。执行a+,a值为3。判断a=3,成立,输出3。执行a+,a值为4。判断a=3,不成立,循环结束。第六章 循环结构程序设计例5 用for语句求1+2+3+99+100的值。main()int sum=0,i;for(i=1;i=100;i+)sum=sum+i;printf(“%dn”,sum);sum=0for i=1 to 100sum=sum+i输出sum的值第六章 循环结构程序设计3.说明(1)for语句是先判断,后执行。如果循环条件一开始就不成立,则
7、循环一次都不执行。(2)for语句的使用很灵活,形式多样化。(3)循环体为多条语句时,必须采用复合语句,要加上一对花括号。(4)循环变量的增值并不受限于1,可以为正,也可为负。但必须使循环变量的值发生改变,使循环条件能趋向假,否则会造成死循环。第六章 循环结构程序设计4.for语句的灵活使用(1)for语句中的初始化表达式和增值表达式也常为逗号表达式。如:for(sum=0,i=1;i=100;i+)sum=sum+i;又如:for(a=0,b=8;ab;a+,b-)x=a+b;(2)for语句中的初始化表达式和增值表达式可以省略,但两个分号不能省略。此时,for语句与while语句完全等价。
8、第六章 循环结构程序设计例5可改写成如下形式:main()int i,sum=0;i=1;for(;i=100;)sum=sum+i;i+;printf(“%d”,sum);第六章 循环结构程序设计(3)循环条件不一定是循环变量和某个目标值的比较。例4可改用for语句来实现:#includemain()int m;char ch;for(m=0;(ch=getchar()!=n;m+);printf(“%d”,m);比较:比较:几种循环可互相替换,其中for语句的功能最强,使用最灵活。第六章 循环结构程序设计goto语句(无条件转向语句)语句(无条件转向语句)1.形式:goto 标号;2.功能
9、:将程序流程无条件地转移到标号所在的那个语句开始执行,与if语句一起可构成循环。例 用goto求1100之和。main()int i=1,sum=0;loop:if(i=100)sum=sum+i;i+;goto loop;printf(“%d”,sum);第六章 循环结构程序设计6.4 多重循环多重循环 当一个循环体内又包含另一个完整的循环结构时,称为多重循环或循环嵌套,其循环结构可用上述三种循环语句的任意一种。形如:sum=0;for(a=1;a=3;a+)for(b=1;b=3;b+)sum=sum+b;内外重循环的循环变量不同,b变化的速度比a快,赋值语句共执行9次。第六章 循环结构程
10、序设计例6 求s=1+(1+2)+(1+2+3)+(1+2+3+100)的值。t=0for j=1 to it=t+js=0for i=1 to 100s=s+t输出s的值求出第i个加项tmain()int i,j,t;long s;for(s=0,i=1;i=100;i+)t=0;for(j=1;j=i;j+)t=t+j;s=s+t;printf(“s=%ldn”,s);第六章 循环结构程序设计例7 打印九九表(每个数占4列)。第六章 循环结构程序设计S1:打印表头S2:打印分隔线S3:打印表体(1)打印表头 for(i=1;i=9;i+)printf(“%4d”,i);(2)打印分隔线 f
11、or(i=1;i=36;i+)printf(“%c”,-);(3)打印表体 for(i=1;i=9;i+)打印第i行第六章 循环结构程序设计进一步考虑如何“打印第i行”?for(j=1;j=9;j+)打印第j个数“打印第j个数”即在第i行的第j列上打印一个数,大小为i*j,占4列,故可写为:printf(“%4d”,i*j);最后考虑如何“换行”?显然不能在每个数字后面都换行,而应该在第九个数字后面换行。因此,换行的语句不应该放在第二重循环内,而应在第二重循环外,与第二重循环并列。第六章 循环结构程序设计main()int i,j;for(i=1;i=9;i+)/*打印表头*/printf(“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 程序设计
限制150内