C课件 Ch_8B

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C程序设计快速进阶大学教程2020/9/202本章要点循环语句•while语句/do…while语句/for语句循环条件•计数器控制循环/标记控制循环循环嵌套循环中的跳转•break语句/continue语句/goto语句C程序设计快速进阶大学教程2020/9/203结构化程序只由三种基本结构组成控制结构--用于控制程序的执行流程顺序(sequence)选择(selection)重复(repetion)if结构(单项选择)if/else结构(双项选择)switch结构(多项选择)while结构do/while结构for结构控制结构C程序设计快速进阶大学教程2020/9/2048.1理解循环结构求2n的问题次执行;;;;nsssssss2*......2*2*1循环概念为解决某一问题,或求取某一计算结果,特定的条件下,程序中反复按某一模式进行操作。C程序设计快速进阶大学教程2020/9/205循环概念8.1理解循环结构求2n的问题次执行;;;;nsssssss2*......2*2*1k=1,s=1k≤n?s=s*2k=k+1计数器为解决某一问题,或求取某一计算结果,特定的条件下,程序中反复按某一模式进行操作。C程序设计快速进阶大学教程2020/9/206循环概念为解决某一问题,或求取某一计算结果,特定的条件下,程序中反复按某一模式进行操作。设计循环结构要点需要重复哪些的步骤,即循环体中的操作;需要合理设计循环条件,使循环不无限次执行;修改循环条件,使循环条件的值趋近0。8.1理解循环结构C程序设计快速进阶大学教程2020/9/207循环体的算法?循环的条件、循环结束条件?如何修改循环条件?8.1理解循环结构循环条件循环体循环条件循环体循环结构两种基本类型当型循环直到型循环C程序设计快速进阶大学教程2020/9/2088.2循环语句while(表达式){语句;}do{语句;}while(表达式);for(表达式1;表达式2;表达式3){语句;}C程序设计快速进阶大学教程2020/9/209语句形式while(表达式){循环体;}逻辑表达式决定是否执行循环体表达式值为逻辑true则执行循环体重复执行的操作直至表达式的值为false8.2.1while语句C程序设计快速进阶大学教程2020/9/20108.2.1while语句算法步骤1.在循环结构外设置条件变量2.测试循环条件,若其值为假则执行步骤(6);3.执行循环体中的语句;4.更新条件变量的值;5.重复(2)~(4)步骤6.结束循环while(表达式){循环体;}C程序设计快速进阶大学教程11例8.1用while语句实现求1~100的和循环条件?循环结束条件?修改循环条件?1001iisuminti=1,sum=0;while(i=100){sum=sum+i;i++;}printf(sum=%d\n,sum);i=100sum=0,i=1sum=sum+Ii++PrintsumC程序设计快速进阶大学教程12例8.1用while语句实现求1~100的和循环条件?循环结束条件?修改循环条件?1001iisuminti=1,sum=0;while(i=100){sum=sum+i;i++;}printf(sum=%d\n,sum);i=100sum=0,i=1sum=sum+Ii++Printsum可以写成:sum+=i;i++;或:sum+=i++;如果写成?sum+=++i;C程序设计快速进阶大学教程2020/9/2013语句形式与执行流程8.2.2do语句循环条件循环体循环条件循环体do{循环体}while(表达式);do…while为直到型循环至少执行一次循环体内的语句!C程序设计快速进阶大学教程14例8.2用do…while语句实现求1~100的和1001iisumintsum=0,i=1;do{/*循环体*/sum+=i;i++;}while(i=100);printf(sum=%d\n,sum);i=100sum=sum+ii++sum=0,i=1PrintsumC程序设计快速进阶大学教程2020/9/2015语句形式8.2.3for语句for(表达式1;表达式2;表达式3){循环体;}关键字初始表达式循环后置表达式循环控制逻辑表达式for(循环变量赋值;循环条件;修改循环变量)循环体语句C程序设计快速进阶大学教程2020/9/2016执行流程8.2.3for语句for(表达式1;表达式2;表达式3){循环体;}1.求解表达式1;2.求解表达式2;3.若其值为逻辑真,则执行循环体中的语句;若其值为假则结束循环,转到第(6)步;4.求解表达式3;5.重复执行步骤(2)、(3)、(4)中的操作;6.循环结束,执行for语句后的语句。C程序设计快速进阶大学教程17例8.2求1~100的和1001iisumintsum=0,i;for(i=1;i=100;i++)sum+=i;表达式2表达式1循环体表达式3intsum=1,i;for(i=2;i=100;i++)sum+=i;C程序设计快速进阶大学教程2020/9/2018不同形式的for语句结构(1)inti=1;//缺省表达式1for(;i=n;i++){sum=sum+i;}(2)for(i=1;;i++){sum=sum+i;if(in)break;}//缺省表达式2等价于for(i=1;1;i++)(3)for(i=1;i=n;){sum=sum+i;i++;}//缺省表达式3(4)for(i=1;i=n;sum+=i++);//缺省循环体for语句分号不能省8.2.3for语句C程序设计快速进阶大学教程2020/9/2019(5)i=1;for(;i=n;){sum=sum+i++;}//缺省表达式1、3(7)i=1;for(sum=0;i=n;i++){sum=sum+i;}//表达式1、2、3可以为任何表达式for语句分号不能省(8)for(i=1;sum+=i++,i=n;);//缺省表达式3和循环体注意逗号表达式(6)i=1;for(;;){sum+=i++;if(in)break;}//缺省全部for的表达式不同形式的for语句结构8.2.3for语句(9)for(i=1;i=100;sum+=i++);C程序设计快速进阶大学教程2020/9/2020for语句8.2.4三种循环语句的比较3种循环一般可以互相代替,区别如下:(1)用while和do-while循环时,循环变量初始化在while和do-while语句之前,for语句可以在表达式1中实现循环变量的初始化。(2)while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句可以在表达式3中实现。(3)for语句和while语句一般用来实现当型循环,循环体可能一次也不执行;do-while语句构成的直到型循环,循环体至少执行一次.C程序设计快速进阶大学教程21例8.3求2的n次幂,分别用三种语句实现。intpower=1,i=1;while(i=n){power*=2;i++;}intpower=1,i=1;do{power*=2;i++;}while(i=n);for(i=0,power=1;in;i++)power*=2;1.输入m,利用while、do、for循环实现计算并输出m的阶乘。(模板1)2.输入m,计算m到50的累加和。分别用while和do循环实现,比较while循环与do循环。(模板2)3.输入一个月份(1--12),利用do循环做有效性输入。(模板3)while与do区别对数据输入有效性验证C程序设计快速进阶大学教程2020/9/20238.3循环条件为合理使用循环结构实现算法,必须正确设计循环条件。一般循环条件表达式的值由某个变量控制,根据控制变量的性质,循环分为两类:计数器控制循环;标记控制循环。应避免死循环发生!C程序设计快速进阶大学教程2020/9/20248.3.1计数器控制循环若能知道循环将执行的确切次数,就使用计数器控制循环。计数器变量(counter)用于统计循环执行的次数,在循环执行前将其赋予特定的值,并在循环体执行的过程中不断对其进行修改,使其能改变循环条件的值,直到某次重复循环体操作后循环条件为逻辑假,结束循环。C程序设计快速进阶大学教程25例8.4求m的n次幂intpower=1,base,exp,/*底数与指数*/counter;/*计数器*/printf(输入底数与指数(0):);scanf(%d%d,&base,&exp);for(counter=0;counterexp;counter++){power*=base;}printf(%d的%d次幂为%d\n,base,exp,power);C程序设计快速进阶大学教程26例8.4求m的n次幂intpower=1,base,exp,counter=0;for(;counterexp;counter++)power*=base;counter=1,power=base;while(counterexp){power*=base;++counter;}注意控制循环次数,循环计数器变量的初值决定循环表达式的构造方法。C程序设计快速进阶大学教程2020/9/20278.3.2标记控制循环对于执行次数不确定的循环,采用标志控制循环的方法。常根据用户的输入决定循环是否继续。设置并检测标志变量,若其值满足某个条件,则重复循环体操作,否则循环结束。在标记循环中使用事先指定的特殊值作为标记。该特殊值不能与一般数据相混淆!for(i=0;(c=getchar())!=’\n’;i++);printf(“%d”,i);C程序设计快速进阶大学教程28例8.5求若干人的平均收入doublesalary=0,sum=0;intcounter=0;/*循环次数*/printf(Pleaseentersalary(-1toend):);scanf(%lf,&salary);while(salary!=-1){sum+=salary;++counter;printf(Pleaseentersalary(-1toend):);scanf(%lf,&salary);}printf(Average=%5.2f\n,sum/counter);C程序设计快速进阶大学教程29例8.5求若干人的平均收入while(salary!=-1){scanf(%lf,&salary);sum+=salary;++counter;}do{scanf(%lf,&salary);sum+=salary;++counter;}while(salary!=-1);逻辑问题?C程序设计快速进阶大学教程2020/9/20308.4循环嵌套循环嵌套:一个循环体中又包含另一个完整的循环结构。多层循环:内嵌的循环中还可以嵌套循环。外层循环内层循环内层循环内层循环合法的嵌套循环C程序设计快速进阶大学教程2020/9/20318.4循环嵌套各种循环语句都可以互相嵌套while、do-while和for三种循环语句可分别构成嵌套结构(1)while()(2)do(3)for(;;){…{…{while()dofor(;;){…}{…}while();{…}}}while();}C程序设计快速进阶大学教程2020/9/20328.4循环嵌套各种循环语句都可以互相嵌套三种循环语句也可以相互嵌套,即在while循环、do-while循环和for循环体内,包含上述任一循环结构。(4)while()(5)for(;;)(6)do{…{…{…do{…}while()for(;;)while();{}{…}}}}while();C程序设计快速进阶大学教程2020/9/2033内外循环执行顺序//测试

1 / 68
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功