第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解.ppt
《第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解.ppt》由会员分享,可在线阅读,更多相关《第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 循环结构程序设计v 概述概述v gotogoto语句及用语句及用gotogoto语句构成循环语句构成循环v 三种循环三种循环whilewhile、do-whiledo-while、forforv 循环的嵌套循环的嵌套v 几种循环的比较几种循环的比较v BreakBreak语句和语句和continuecontinue语句语句v 程序举例程序举例6.0 循环结构导入循环结构导入在程序设计中含有循环结构的问题是大量存在的在程序设计中含有循环结构的问题是大量存在的对输入的对输入的1010个整数求和,怎么个整数求和,怎么编程?程?对输入的对输入的100100个整数求和,怎么个整数求和,怎么编程?
2、程?以上以上问题可以引出一个概念可以引出一个概念“循循环”,简单而言:而言:循循环就是不断反复地就是不断反复地执行同一段程序。行同一段程序。6.1 概述概述C语言可实现的循环:语言可实现的循环:用用goto和和if构成循环构成循环while语句语句dowhile语句语句for语句语句不提倡不提倡当型循环当型循环先判先判断后执行断后执行直到型循环直到型循环先先执行后判断执行后判断多功能多功能6.2 goto语句及用语句及用goto语句构成循环语句构成循环一般形式:一般形式:语句标号语句标号:语句:语句.goto语句标号语句标号;1.功能是无条件转到功能是无条件转到语句语句标号处。标号处。2.用途
3、:用途:与与if语句一起构成循环结构;语句一起构成循环结构;从循环体中跳到循环体外。从循环体中跳到循环体外。3.因为滥用因为滥用goto语句会破坏结构化,使流程无规律,所以应语句会破坏结构化,使流程无规律,所以应限制使用限制使用。除非不得已时除非不得已时(例如能大大提高效率例如能大大提高效率)才使用。才使用。说明:说明:语句标号:语句标号:1.用于定义程序中的某个用于定义程序中的某个位置。位置。2.用标识符表示,开头不用标识符表示,开头不能是数字。能是数字。如:如:goto3t;错误错误gotot3;正确正确3.只能加在可执行语句前只能加在可执行语句前面。面。用用if语句和语句和goto语句构
4、成循环语句构成循环例例1 1 计算计算#includemain()inti,sum=0;i=1;loop:if(i=100)sum+=i;i+;gotoloop;printf(%d,sum);sum=sum+1=1sum=sum+2=3sum=sum+3=6sum=sum+4=10sum=sum+100=5050循环初值循环初值循环终值循环终值循环变量增值循环变量增值循环条件循环条件循环体循环体分析分析:这是一个累加求和的问题:这是一个累加求和的问题sum=1+2+3+100仅作示范,仅作示范,不提倡使用不提倡使用6.2 goto语句及用语句及用goto语句构成循环语句构成循环循环结构应注意的
5、三方面问题:循环结构应注意的三方面问题:控制变量的初始化,控制变量的初始化,循环的条件循环的条件 控制变量的更新。控制变量的更新。用用while语句实现当型循环语句实现当型循环表达式表达式循环体循环体当表达式的值为真(非当表达式的值为真(非0)时,执行其中的内嵌语句(循环体)时,执行其中的内嵌语句(循环体),然后回过头来再判断表达式的值,如此重复;当表达式为假,然后回过头来再判断表达式的值,如此重复;当表达式为假(0)时结束循环。)时结束循环。6.3 用while语句语句实现循环实现循环一般形式:一般形式:while(表达式表达式)循环体语句循环体语句表达式表达式循环体循环体假假(0)真真(非
6、非0)执行过程:执行过程:特点:先判断表达式,后特点:先判断表达式,后执行循环体执行循环体。注意:注意:循环体有可能一次也不执行。循环体有可能一次也不执行。循环前,须给循环控制变量赋初值。循环前,须给循环控制变量赋初值。若循环体包含一条以上的语句,若循环体包含一条以上的语句,应以复合语句形式出现应以复合语句形式出现。循环体中,必须有改变循环控制循环体中,必须有改变循环控制变量值的语句(使循环趋向结束变量值的语句(使循环趋向结束的语句的语句,否则就成为死循环)。否则就成为死循环)。无限循环无限循环:while(1):while(1)循环体循环体;循环控制条件可多样循环控制条件可多样while(i
7、=100)while(getchar()!=n)n+;循环体可为空循环体可为空如:如:while(c=getchar()!=A);从键盘输入字符直到输入从键盘输入字符直到输入A为止为止等价于等价于:c=getchar();while(c!=A)c=getchar();一般形式:一般形式:while(表达式表达式)循环体语句循环体语句循环控制表循环控制表达式达式循环体循环体循环控制循环控制变量变量例如:例如:k=1;while(k=100)s=s+k;k+;分析分析:累加求和的问题:累加求和的问题s=1+2+3+100s=0s=s+1s=s+2s=s+3和的和的新值新值s=s+k和的当和的当前值
8、前值求和项求和项当前值当前值例例2 2 用用while语句语句计算计算#includemain()intk,s;s=0;k=1;while(k=100)s=s+k;k+;printf(“s=%d,s);注意:注意:s、k的初值的初值及位置及位置s=0,k=1当当k100 s=s+kk=k+1用用do-while语句实现直到型循环语句实现直到型循环执行循环体,当表达式的值为真(非执行循环体,当表达式的值为真(非0)时,再次执行循)时,再次执行循环体,如此重复;当表达式为假(环体,如此重复;当表达式为假(0)时结束循环。)时结束循环。6.4 do-while语句语句一般形式:一般形式:do循环体语
9、句循环体语句while(表达式表达式);表达式表达式循环体循环体假假(0)真真(非非0)执行过程:执行过程:先执行循环体,后判断表达先执行循环体,后判断表达式式。循环体至少执行一次。循环体至少执行一次。do-while语句语句可转化成可转化成while语句。语句。表达式表达式循环体循环体;不可省略!不可省略!切记!切记!例例3 3 用用do-while语句语句计算计算#includemain()intk,s;s=0;k=1;while(k=100)s=s+k;k+;printf(“s=%d,s);#includemain()intk,s;s=0;k=1;dos=s+k;k+;while(k=1
10、00);printf(“s=%d,s);s=0,k=1s=s+kk=k+1 当当i=100先判后做先判后做先判后做先判后做先做后判先做后判先做后判先做后判运行结果:运行结果:1 1 sum=55 sum=55 再运行一次:再运行一次:1111sum=0sum=0运行结果:运行结果:1 1 sum=55 sum=55 再运行一次:再运行一次:1111sum=11sum=11whilewhile语句和用语句和用do-whiledo-while语句的比较语句的比较:一般情况下,用一般情况下,用whilewhile语句和用语句和用do-whiledo-while语句处理同一问题,若语句处理同一问题,若
11、二者的循环体一样,结果也一样。但如果二者的循环体一样,结果也一样。但如果whilewhile后面的表达式一开后面的表达式一开始就为假始就为假(0(0值值)时,两种循环的结果是不同的。时,两种循环的结果是不同的。教材教材117 117 例例6.46.46.5 for语句语句最简单的应最简单的应用形式:用形式:for(循环变量赋初值循环变量赋初值;循环条件循环条件;循环变量增值循环变量增值;)循环体语句循环体语句例如:例如:for(i=1;i=100;i+)sum+=i;一般形式:一般形式:for(表达式表达式1;表达式表达式2;表达式表达式3;)循环体语句循环体语句(1)先求解表达式先求解表达式
12、1。(2)求解表达式求解表达式2,若其值为真,若其值为真(值为非值为非0),则执行则执行for语句中指定的循环体语句,然后语句中指定的循环体语句,然后执行下面第执行下面第(3)步。若为假步。若为假(值为值为0),则,则结束循环,转到第结束循环,转到第(5)步。步。(3)求解表达式求解表达式3。(4)转回上面第转回上面第(2)步骤继续执行。步骤继续执行。(5)循环结束,执行循环结束,执行for语句下面的一个语句语句下面的一个语句执行过程:执行过程:例如:例如:for(i=1;i=100;i+)sum+=i;for(表达式表达式1;表达式表达式2;表达式表达式3;)循环体语句循环体语句1.表达式表
13、达式1省略时,应在省略时,应在for前给循环变量赋初值。前给循环变量赋初值。如:如:i=1;for(;i=100;i+)sum=sum+i;执行时,跳过执行时,跳过“求解表达式求解表达式1 1”这一步,其他不变。这一步,其他不变。2.表达式表达式2省略时,不判断循环条件,将成为省略时,不判断循环条件,将成为“死循环死循环”,需要,需要在循环体中引入在循环体中引入break语句以退出循环。语句以退出循环。如:如:for(i=1;i+)sum=sum+i;它相当于:它相当于:i=1;while(1)sum=sum+1;i+;死循环死循环3.表达式表达式3省略时,在循环体内必须有使循环条件改变的语句
14、,省略时,在循环体内必须有使循环条件改变的语句,以保证循环能正常结束。以保证循环能正常结束。如:如:for(k=1;k=3;)s=s+k;k+;for循环的说明循环的说明:4.同时省略表达式同时省略表达式1和表达式和表达式3,只有表达式,只有表达式2,相当于,相当于while语句。语句。如如k=1;for(;(;k=100;)s=s+k;k+;k=1;while(k=100)s=s+k;k+;for循环的说明循环的说明:5.3个表达式都可省略,如:个表达式都可省略,如:for(;)语句语句无限循环无限循环不设初值,不判断条件,循环变量不增值。无终止地执行循环体。不设初值,不判断条件,循环变量不
15、增值。无终止地执行循环体。6.表达式表达式2一般是关系表达式或逻辑表达式,但也可以是数值表达一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值不等于式或字符表达式,只要其值不等于0就执行循环体。就执行循环体。如:如:for(k=1;k-4;k+)s=s+k;仅当仅当k的值等于的值等于4时终止循环。时终止循环。k-4是数值表达式。是数值表达式。例:例:#includemain()charc;for(;(c=getchar()!=n;)printf(%c,c);for语句中只有表达式语句中只有表达式2,而,而无表达式无表达式1和表达式和表达式3。其作。其作用是每读入一个字符后
16、立即用是每读入一个字符后立即输出该字符,直到输入一个输出该字符,直到输入一个“换行换行”为止。为止。运行情况:运行情况:Computer(输入输入)Computer(输出输出)例:例:#includemain()inti,c;for(i=0;(c=getchar()!=n;i+=c);此此for语句的循环体为空语句,把语句的循环体为空语句,把本来要在循环体内处本来要在循环体内处理的内容放在理的内容放在表达式表达式3中。中。表达式表达式2中先从终端接收一个字符中先从终端接收一个字符赋给赋给c,然后判断,然后判断c的值是否不等于的值是否不等于换行符换行符n,如果不等于,如果不等于n,执行,执行循环
17、体。循环体。例例 用用for语句语句计算计算#includemain()intk,s;s=0;k=1;while(k=100)s=s+k;k+;printf(“s=%d,s);#includemain()intk,s;s=0;k=1;dos=s+k;k+;while(k=100);printf(“s=%d,s);先判后做先判后做先判后做先判后做先做后判先做后判先做后判先做后判#includemain()intk,s;s=0;for(k=1;k=100;k+)s=s+k;printf(“s=%d,s);6.6 几种循环的比较几种循环的比较1.不提倡用不提倡用goto构成循环。构成循环。2.关于循
18、环的控制:当循环控制条件非零时,执行循环体语句,关于循环的控制:当循环控制条件非零时,执行循环体语句,否则终止循环。否则终止循环。while(表达式表达式)循环体语句循环体语句do循环体语句循环体语句while(表达式表达式);for(表达式表达式1;表达式表达式2;表达式表达式3;)循环体语句循环体语句循环条件初始化循环条件初始化也可在也可在for前前循环控制条件循环控制条件也可在循环体内也可在循环体内修改循环条件修改循环条件(改变循环控制变量值改变循环控制变量值)3.一种循环可以解决的问题,使用另外两种同样可行,只是一种循环可以解决的问题,使用另外两种同样可行,只是方便程度不同。方便程度不
19、同。4.while循环一般用于循环次数不定的情况,循环一般用于循环次数不定的情况,for循环一般用循环一般用于循环次数确定的情况于循环次数确定的情况(也可以用于循环次数不定的情况也可以用于循环次数不定的情况),do-while循环一般用于至少需要执行一次的情况。循环一般用于至少需要执行一次的情况。5.for循环和循环和while循环是先判断条件是否为真,再执行循环循环是先判断条件是否为真,再执行循环体,因此,可出现循环一次也不执行的情况;体,因此,可出现循环一次也不执行的情况;do-while循循环是先执行循环体,再判断条件是否为真,因此,循环环是先执行循环体,再判断条件是否为真,因此,循环体
20、至少执行一次。体至少执行一次。6.while循环、循环、do-while循环、循环、for循环,可以用循环,可以用break语句语句跳出循环,用跳出循环,用continue语句结束本次循环。语句结束本次循环。2.循环体语句可以是任何语句,简单语句、复合语句、空语句循环体语句可以是任何语句,简单语句、复合语句、空语句均可以。均可以。6.7循环的嵌套循环的嵌套什么叫循环嵌套?什么叫循环嵌套?一个循环的循环体中套有另一个循环叫一个循环的循环体中套有另一个循环叫循环嵌循环嵌套套。这种嵌套过程可以一直重复下去。这种嵌套过程可以一直重复下去。一个循环外面包围一层循环称为一个循环外面包围一层循环称为二重循环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构设计 语言程序设计 谭浩强 第三 讲解
限制150内