资源预览内容
第1页 / 共98页
第2页 / 共98页
第3页 / 共98页
第4页 / 共98页
第5页 / 共98页
第6页 / 共98页
第7页 / 共98页
第8页 / 共98页
第9页 / 共98页
第10页 / 共98页
亲,该文档总共98页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
石家庄理工职业学院石家庄理工职业学院循环控制结构循环控制结构授课人:授课人: 信息技术系信息技术系 李杏彬李杏彬1本讲大纲本讲大纲l引入引入lFor 语句语句lWhile 语句语句ldo-while 语句语句l循环的嵌套循环的嵌套lbreak和和continue语句语句l几种循环的比较几种循环的比较2重点与难点重点与难点一、重点一、重点l1. for 循环循环l2. while 循环循环l3. do-while 循环循环二、难点二、难点l1. 特殊特殊 for 循环循环l2. break、continue语句语句3二、引入二、引入:吃饭过程示意图吃饭过程示意图 4二、引入二、引入:吃饭过程示意图吃饭过程示意图 5二、引入二、引入:吃饭过程示意图吃饭过程示意图 6引入引入:吃饭过程示意图吃饭过程示意图 7引入引入需要循环结构解决的问题:需要循环结构解决的问题:l一、求一、求 1到到n的和的和l二、求二、求n!l三、猴摘桃问题三、猴摘桃问题 猴子第一天摘了一堆桃子,当即吃了一半又一猴子第一天摘了一堆桃子,当即吃了一半又一个,以后每天都吃前一天剩下的一半又一个桃子,个,以后每天都吃前一天剩下的一半又一个桃子,到第到第10天,只剩下一个桃子,问候子第一天摘了天,只剩下一个桃子,问候子第一天摘了多少个桃子?多少个桃子?8引入引入在不使用数学公式的前提下,看一看用顺序结构能在不使用数学公式的前提下,看一看用顺序结构能否解决否解决1到到n的求和问题。的求和问题。当当 n=5 时,可以写成时,可以写成 s=1+2+3+4+5;当当 n=10时,可以写成时,可以写成 s=1+2+3+4+5+6+7+8+9+10;当当 n 是一个未知数时,写成是一个未知数时,写成 s=1+2+3+4+5+n-2+n-1+n; 上式只有数学上的意义,上式只有数学上的意义,C#语言不认可这样的语言不认可这样的语句。所以,对于大部分循环问题,顺序结构是解语句。所以,对于大部分循环问题,顺序结构是解决不了的。决不了的。9一、一、For 语句语句1.1 for语句的基本形式语句的基本形式for(表达式表达式1;表达式表达式2;表达式表达式3) 语句语句;表达式表达式1:用于给循环控制变量赋初值:用于给循环控制变量赋初值表达式表达式2:循环条件,控制循环的结束:循环条件,控制循环的结束表达式表达式3:用于改变循环控制变量的值:用于改变循环控制变量的值语句:可以是复合语句,叫做循环体,当表达语句:可以是复合语句,叫做循环体,当表达 式式 2 的结果为真时,语句被执行。的结果为真时,语句被执行。10一、一、For 语句语句1.2 for语句语句执行流程示意图执行流程示意图 计算表达式计算表达式1表达式表达式2执行循环体执行循环体计算表达式计算表达式311一、一、For 语句语句1.2 for语句语句执行流程示意图执行流程示意图 计算表达式计算表达式1表达式表达式2执行循环体执行循环体计算表达式计算表达式3真真12一、一、For 语句语句1.2 for语句语句执行流程示意图执行流程示意图 计算表达式计算表达式1表达式表达式2执行循环体执行循环体计算表达式计算表达式3真真13一、一、For 语句语句1.2 for语句语句执行流程示意图执行流程示意图 计算表达式计算表达式1表达式表达式2执行循环体执行循环体计算表达式计算表达式3真真14一、一、For 语句语句1.2 for语句语句执行流程示意图执行流程示意图 计算表达式计算表达式1表达式表达式2执行循环体执行循环体计算表达式计算表达式3假假15一、一、For 语句语句1.3 注意点注意点l1. 三个表达式都可以省略,但是三个表达式都可以省略,但是 “;” 号不能省略;号不能省略; 例如:例如: for(;i=n;i+) s+=i;l2. 不能把表达式之间的分隔符不能把表达式之间的分隔符”;”,误写成,误写成 “,”;l3. 省略了表达式省略了表达式 1,必须在,必须在 for 之前初始化循环控制变量之前初始化循环控制变量l4. 省略了表达式省略了表达式 2,必须在循环体内加入控制循环结束的,必须在循环体内加入控制循环结束的 语句;语句;l5. 省略了表达式省略了表达式 3,必须在循环体内加入改变循环控制变,必须在循环体内加入改变循环控制变量值的语句。量值的语句。l6. 三个表达式可以是用三个表达式可以是用 “,” 号分隔的复合表达式。号分隔的复合表达式。16一、一、For 语句语句1.4 示例示例l1. 求求 1 到到 n 的和的和17一、一、For 语句语句白板:白板: s=1+2+3+.+n- s=0; s=s+1; s=s+2; s=s+3; . s=s+k;18一、一、For 语句语句看看代码看看代码 int sum(int n) int k,s=0; for(k=1;k=n;k+) s+=k; return s; 19一、一、For 语句语句l2. 求求 n!20一、一、For 语句语句白板:白板: n!=1*2*3*4*.*n- n=1; n=n*2; n=n*3 . n=n*k;21一、一、For 语句语句看看代码看看代码 int fac(int n) int k,f=1; for(k=1;k0;k-) x=2*x+2; return x; 是不是很简单,这么复杂的问题用一条是不是很简单,这么复杂的问题用一条 for 语句就解决语句就解决 了,这就是了,这就是for循环的魅力。循环的魅力。 请看程序动态执行的过程。请看程序动态执行的过程。26一、一、For 语句语句 101kxK=10100x=2*x+2k=k-1真真9427一、一、For 语句语句 94kxK=1090x=2*x+2k=k-1真真81028一、一、For 语句语句 810kxK=1080x=2*x+2k=k-1真真72229一、一、For 语句语句 722kxK=1070x=2*x+2k=k-1真真64630一、一、For 语句语句 646kxK=1060x=2*x+2k=k-1真真59431一、一、For 语句语句 594kxK=1050x=2*x+2k=k-1真真419032一、一、For 语句语句 4190kxK=1040x=2*x+2k=k-1真真338233一、一、For 语句语句 3382kxK=1030x=2*x+2k=k-1真真276634一、一、For 语句语句 2766kxK=1020x=2*x+2k=k-1真真1153435一、一、For 语句语句 11534kxK=1010x=2*x+2k=k-1真真0307036一、一、For 语句语句 03070kxK=1000x=2*x+2k=k-1假假循环结束循环结束再再一、一、For 语句语句看一次看一次37一、一、For 语句语句1.5 表达式不全的表达式不全的 for 语句语句l1. 表达式表达式1缺失缺失 i=1; s=0; for(;i10) break; 39一、一、For 语句语句l3. 表达式表达式 3 缺失缺失 s=0; for(i=1;i10) break; 41一、一、For 语句语句1.6 复合表达式复合表达式 for 语句语句求求 1 到到 n 的和的和设:设:intint i,s,ni,s,n=10; /* =10; /* 正确结果为正确结果为 5555 */ */l1.for(i=1,s=0;i=1.for(i=1,s=0;i=n;sn;s= =s+i,is+i,i+); (55)+); (55)l2.for(i=1,s=0;i=2.for(i=1,s=0;i=n;i+,sn;i+,s= =s+is+i); (65); (65)42一、一、For 语句语句课内练习:审查错误课内练习:审查错误l1. 计算计算1到到10的和的和1) s=0;2) for(i=0;i=10;i+);3) 4) s=s+i;5) 6) 43一、一、For 语句语句l2.计算计算1到到10的和的和1) s=0;2) for(i=0;i=10;i-)3) 4) s=s+i;5) 6) 44一、一、For 语句语句l3.计算计算1到到10的和的和1) s=0;2) for(;i=10;i+)3) 4) s=s+i;5) 45一、一、For 语句语句l4.计算计算1到到10的和的和 1) s=0;2) for(;i=10;)3) 4) s=s+i;5) 462.1、while语句的一般形式语句的一般形式 while(表达式表达式) 语句语句;其中表达式的值控制循环结束的条件,语句为循其中表达式的值控制循环结束的条件,语句为循环体。环体。二、二、while语句语句47 2.2 While 结构执行流程图示结构执行流程图示二、二、while语句语句计算表达式计算表达式执行循环体执行循环体假假真真48 2.2 While 结构执行流程图示结构执行流程图示二、二、while语句语句计算表达式计算表达式执行循环体执行循环体假假真真49 2.2 While 结构执行流程图示结构执行流程图示二、二、while语句语句计算表达式计算表达式执行循环体执行循环体假假真真50 2.2 While 结构执行流程图示结构执行流程图示二、二、while语句语句计算表达式计算表达式执行循环体执行循环体假假真真512.3 While语句的注意点语句的注意点l1. while语句中的表达式一般是关系表达式或逻辑表达式,语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真即可继续循环。只要表达式的值为真即可继续循环。l2. 循环控制变量必须在循环控制变量必须在while语句之前进行初始化语句之前进行初始化l3. 在循环体内,应对循环控制变量进行增加或减少操作。在循环体内,应对循环控制变量进行增加或减少操作。l4. 一般情况下,循环体不能是空语句,例如:一般情况下,循环体不能是空语句,例如: while(i10); 应谨慎使用。应谨慎使用。二、二、while语句语句52二、二、while语句语句2.4 while语句示例语句示例l1. 求求 1 到到 n 的和的和53二、二、while语句语句白板:白板: i=1,s=0Input ni=ns=s+Ii=i+1FT54二、二、while语句语句看看代码:看看代码: i=1;i=1; while(iwhile(i=n)=n) s= s=s+is+i; ; i+; i+; return s; return s; /*求求 1 到到 n 的和的和*/intint sum(intsum(int n) n) intint i,si,s=0;=0; 请看动态执行过程请看动态执行过程55二、二、while语句语句 n=? 556二、二、while语句语句 1=5s=s+ii=i+1真真1 i5 n0sum1257二、二、while语句语句 2=5s=s+ii=i+1真真2 i5 n1sum3358二、二、while语句语句 3=5s=s+ii=i+1真真3 i5 n3sum6459二、二、while语句语句 4=5s=s+ii=i+1真真4 i5 n6sum10560二、二、while语句语句 5=5s=s+ii=i+1真真5 i5 n10sum15661二、二、while语句语句 6=5s=s+ii=i+1假假6 i5 n15sum循环结束循环结束62二、二、while语句语句l2. 求求 n!63二、二、while语句语句白板白板 64二、二、while语句语句看看代码:看看代码:/* /* 求求 n! */n! */ intint fac(intfac(int n) n) intint k,fk,f=1;=1; k=1; k=1; while(kwhile(k=n)=n) f=f*k; f=f*k; k+; k+; return f; return f; 65二、二、While语句语句课内练习:在以下练习中,分析代码段,找出错误课内练习:在以下练习中,分析代码段,找出错误l1. 求求 1 到到 10 的和的和 1) k=1;k=1;2) s=0;2) s=0;3) whilek3) whilek4) 4) 5) s=5) s=s+ks+k; ;6) k+;6) k+;7) 7) 66二、二、While语句语句l2.求求 1 到到 10 的和的和 1) k=1;2) s=0;3) while(k=10);4) 5) s=s+k;6) k+;7) 67二、二、While语句语句l3.求求 1 到到 10 的和的和 1) s=0;2) while(k=10)3) 4) s=s+k;5) k+;6) 68二、二、While语句语句l4.求求 1 到到 10 的和的和 1) s=0;2) k=1;3) while(k=10)4) 5) s=s+k;6) 69二、二、While语句语句l5.求求 1 到到 10 的和的和 1) s=0;2) k=1;3) while(k=10)4) 5) s=s+k;6) k-;7) 70三、三、do-while语句语句3.1 do-while语句的一般形式语句的一般形式 do 语句语句 while(表达式表达式);71三、三、do-while语句语句3.2 do-while语句的执行流程图示语句的执行流程图示执行循环体执行循环体计算表达式计算表达式真真72三、三、do-while语句语句3.2 do-while语句的执行流程图示语句的执行流程图示执行循环体执行循环体计算表达式计算表达式真真73三、三、do-while语句语句3.2 do-while语句的执行流程图示语句的执行流程图示执行循环体执行循环体计算表达式计算表达式真真74三、三、do-while语句语句3.2 do-while语句的执行流程图示语句的执行流程图示执行循环体执行循环体计算表达式计算表达式假假75三、三、do-while语句语句3.3 do-while语句的注意点语句的注意点l1. do-while语句中的表达式一般是关系表达式或语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真逻辑表达式,只要表达式的值为真(非非0)即可继续即可继续循环。循环。l2. 循环控制变量必须在循环控制变量必须在while语句之前进行初始化语句之前进行初始化l3. 在循环体内,应对循环控制变量进行增加或减在循环体内,应对循环控制变量进行增加或减少操作。少操作。l4. 一般情况下,循环体不能是空语句,例如:一般情况下,循环体不能是空语句,例如: do ; while(i10); 应谨慎使用。应谨慎使用。76三、三、do-while语句语句3.4 do-while语句示例语句示例/* 求求 1 到到 n 的和的和*/ int sum(int n) int k,s=0; k=1; do s=s+k; k+; while(k=n); return s; 77三、三、do-while语句语句3.4 do-while语句示例语句示例/* 求求 n! */ int fac(int n) int k,f=1; k=1; do f=f*k; k+; while(k=n); return f; 78三、三、do-while语句语句分析以下代码段,给出输出结果分析以下代码段,给出输出结果l1. i=1; s=0; do s=s+i; i+; while(i0); printf(“n s=%d”,s);80三、三、do-while语句语句l3. i=1;j=1; s=0; do s=s+i+j; i+;j+; while(i+j=5); printf(“n s=%d”,s);81三、三、do-while语句语句l4. i=1; s=0; do while(i=0); s=i; printf(“n s=%d”,s);82while 与与 do-while 的区别的区别1、区别、区别l while 的特点是先判断,然后根据判断结果决定的特点是先判断,然后根据判断结果决定是否执行循环体。是否执行循环体。 所以,所以,while循环体被执行的次数可能是循环体被执行的次数可能是 0 次。次。ldo-while 的特点是先执行循环体,然后跟据判定的特点是先执行循环体,然后跟据判定结果决定是否继续执行循环体。结果决定是否继续执行循环体。 所以,所以,do-while循环体至少被执行循环体至少被执行 1 次。次。83while 与与 do-while 的区别的区别2、示例、示例 k=1;s=0;n=0; while(k=n) s=s+k; k+; /* s 的值为的值为 0 */ k=1;s=0;n=0; do s=s+k; k+; while(k=n)/* s 的值为的值为 1 */84while 与与 do-while 的区别的区别3、选择、选择 while 或或 do-while 的原则的原则l1. 在条件不满足,执行循环体可能引起错误的情况下,选在条件不满足,执行循环体可能引起错误的情况下,选择择 whilel2. 在即使条件不满足,也必须执行循环体的情况下,选择在即使条件不满足,也必须执行循环体的情况下,选择 do-whilel3. 尽可能地选择尽可能地选择 while举例:举例: 电梯控制系统,当电梯门打开后,如果电梯内的关门按电梯控制系统,当电梯门打开后,如果电梯内的关门按钮没有被按下,则电梯门不能关闭。钮没有被按下,则电梯门不能关闭。 电话控止系统,电话联通之后,不管受话人是否应答,电话控止系统,电话联通之后,不管受话人是否应答,必须响铃至少一次。必须响铃至少一次。 85四、循环的嵌套四、循环的嵌套4.1 什么是循环的嵌套什么是循环的嵌套 如果一个循环语句的循环体又是一个循如果一个循环语句的循环体又是一个循环语句,叫做循环的嵌套。例如:环语句,叫做循环的嵌套。例如: s=0; for(i=1;i10;i+) for(j=1;ji;j+) s=s+i+j; 86四、循环的嵌套四、循环的嵌套4.2 示例示例 编写程序,打印如下所示的图形编写程序,打印如下所示的图形 * * * * * *87四、循环的嵌套四、循环的嵌套看看代码看看代码 for(i=1;i7;i+) for(j=1;ji;j+) Console.Write(*); Console.WriteLine(); 88五、五、break和和continue语句语句5.1 break语句语句 通常用在循环语句和开关语句中。通常用在循环语句和开关语句中。 break用于开关语句用于开关语句switch中时中时,可使程序可使程序 跳出跳出switch而执行而执行switch以后的语句;以后的语句;当当break语句用于语句用于do-while、for、while循循环语句中时环语句中时,可使程序终止循环而执行循可使程序终止循环而执行循环后面的语句环后面的语句, 通常通常break语句总是与语句总是与if语语句句结合使用,满足条件时便跳出循环。结合使用,满足条件时便跳出循环。89五、五、break和和continue语句语句5.2 continue语句语句continue语句的作用是跳过循环体中剩余语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。的语句而强行执行下一次循环。continue语句只用在语句只用在for、while、do-while等循环体等循环体中中,常与常与if条件语句一起使用条件语句一起使用,用来加速循用来加速循环。环。90五、五、break和和continue语句语句5.3 语法作用图示语法作用图示break语句的作用语句的作用continue语句的作用语句的作用91五、五、break和和continue语句语句5.4 示例示例l1. i=1; s=0; while(true) if(i%13=0) break; s+=i; i=i+1; 92五、五、break和和continue语句语句l2. 求求 1 到到 n 的奇数和的奇数和 i=0; s=0; while(i=n) i+; if(i%2=0) continue; s=s+i; 93五、五、break和和continue语句语句5.5 注意点注意点l1. break语句对语句对if-else的条件语句不起作用。的条件语句不起作用。l2. 在多层循环中在多层循环中, 一个一个break语句只向外跳一层。语句只向外跳一层。 94六、三种循环的比较六、三种循环的比较l1. 三种循环中,三种循环中,for循环是最简单,最清晰循环是最简单,最清晰的一种循环结构。的一种循环结构。l2. for循环适用于循环变量的增量固定不变循环适用于循环变量的增量固定不变的循环问题。的循环问题。l3. while,do-while 循环适用于循环变量的循环适用于循环变量的增量不固定的循环问题。增量不固定的循环问题。95讨论式小结讨论式小结l1. 哪类问题适合用循环来解决?哪类问题适合用循环来解决?l2. 循环结构的关键点有哪些,分别是什么?循环结构的关键点有哪些,分别是什么?l3. while循环的特点是什么?循环的特点是什么?l4. do-while循环的特点是?循环的特点是?l5. for 循环的执行流程是?循环的执行流程是?l6. 在使用在使用for循环时,你认为是用基本循环时,你认为是用基本for循环稳循环稳妥,还是使用特殊妥,还是使用特殊for循环稳妥些循环稳妥些?l7. break语句和什么语句一起使用?语句和什么语句一起使用?l8. continue 的语法作用是什么?的语法作用是什么?96程序举例程序举例P97,例例5-697课外作业与下讲内容课外作业与下讲内容课外作业课外作业 P106,综合练习五,综合练习五下讲内容下讲内容 方法方法98
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号