学习情景5C结构化程序设计循环结构.ppt

上传人:tian****1990 文档编号:12852063 上传时间:2020-05-31 格式:PPT 页数:48 大小:1.20MB
返回 下载 相关 举报
学习情景5C结构化程序设计循环结构.ppt_第1页
第1页 / 共48页
学习情景5C结构化程序设计循环结构.ppt_第2页
第2页 / 共48页
学习情景5C结构化程序设计循环结构.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
学习情景5,VisualC#结构化程序设计循环结构设计,结构化程序设计语句,本讲要点:while、dowhile和for等循环语句的作用及其使用continue和break语句的作用及其使用,循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。采用循环结构可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。循环结构按其循环体是否嵌套从属的子循环结构,可分为单循环结构和多重循环结构。,5.1循环结构概念,5.1循环结构概念,C#中提供了4种循环语句:while循环dowhile循环for循环,5.2while循环语句,格式:while(条件表达式)循环体;,不要加“;”,usingSystem;classSumwstaticvoidMain()intn=1;while(n6)Console.WriteLine(“n=0”,n);n+;,例5-1:写出下列程序的运行结果。,结果:,例5-2:使用while语句,编程计算1+2+1000,usingSystem;classSumwstaticvoidMain()inti=1,sum=0;while(i=1000)sum+=i;i+;Console.WriteLine(“1+2+1000=0”,sum);,(1)如果要实现sum=1+2+3+10,怎样修改程序?(2)如果要实现sum=30+31+32+50,怎样修改程序?,while(i=10),inti=30;While(i0)x*=i;i-;Console.WriteLine(“10!=0”,x);,例5-3:使用while语句,编程计算10的阶乘值。,1.下列程序所计算的数学式是()inta=0,i=2;while(i100)a+=i;i+=2;A.a=1+2+4+98B.a=1+2+4+100C.a=2+4+6+98D.a=2+4+6+100,练习,【练习5-4】编程求下式的值,S=12+22+32+n2,练习,5.3dowhile循环语句,格式:do循环体;while(条件表达式);,必须有“;”,dowhile执行过程while执行过程,usingSystem;classTestDoWhilestaticvoidMain()intx,y=0;dox=y+;Console.WriteLine(x);while(y5);,结果:,例5-5:写出下列程序的运行结果。,例5-6,如果给你一张无限大的纸(纸的厚度为0.5mm),将之反复对折多少次,可超过珠峰高度(8848米)?想一想?问题引申:纸张对折多少次可达到地球到月球的平均距离(384,400千米)呢?如果想解决此问题,怎么去修改上面的程序?,【练习5-7】使用dowhile语句,计算100以内的偶数和。,练习,1.while语句循环结构和do.while语句循环结构的区别在于()Awhile语句的执行效率较高Bdo.while语句编写程序较复杂C无论条件是否成立,while语句都要执行一次循环体Ddo.while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体,练习,相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着88共64格的象棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的许诺吗?共要多少麦子赏赐他的宰相?合多少立方米?(1立方米麦子约1.42e8粒),练习,5.4for循环语句,for循环常常用于已知循环次数的情况。语法格式:for(初始化表达式;循环条件;迭代表达式)循环语句序列;,例5-8:使用for循环语句,编程输出120的每个奇数的平方。,usingSystem;classsquarestaticvoidMain()ints;for(inti=1;i20;i+=2)s=i*i;Console.Write(0t,s);,结果:,staticvoidMain()longm=1;for(inti=1;i=10;i+)m*=i;Console.WriteLine(0!=1,i-1,m);,编程5-9:用for语句输出10!的值:,结果:,(1)如果对循环变量在for语句前已赋初值,则在for语句中可省略表达式1,但要保留其后的分号。.inti=1;for(;i=20;i+).,for语句的几点说明:,(2)for语句可以省略表达式2,即不判断表达式条件是否成立,循环将一直进行下去,但应保留表达式2后面的分号。此时,需要在循环体中添加跳出循环的控制语句。例:for(inti=1;i+)s=i*i;Console.WriteLine(0t,s);if(i=10)break;,for语句的几点说明:,(3)for中可以省略表达式3。此时应在循环体中添加改变循环变量值的语句,以结束循环。例:for(inti=1;i=10;)s=i*i;Console.WriteLine(0t,s);i+;,for语句的几点说明:,(4)for语句中的3个表达式可同时省略。inti=1;for(;)s=i*i;Console.WriteLine(0t,s);i+;if(i=10)break;,for语句的几点说明:,【练习5-10】使用for语句,计算100以内奇数的和。,练习,for循环语句也可以嵌套,for循环示例5-11,inti,j;/*打印九九乘法表。*/for(i=1;i10;i+)for(j=1;j=i;j+)Console.Write(“012,-2“,j,i,i*j);/输出完一行后换行。Console.WriteLine();,例5-12:利用for循环嵌套语句,求1!+2!+3!+.+10!的和。,usingSystem;classMultiSumstaticvoidMain()longs=0,m=1;for(inti=1;i=10;i+)m=1;for(intj=1;j=i;j+)m*=j;s=s+m;Console.WriteLine(1!+2!+3!+.+10!=0,s);,结果:,5.5foreach循环结构,foreach循环一般用于遍历整个集合或数组,foreach(元素类型变量名in集合或者数组名)/语句,输入一个字符串,输出其中的每个字符,关键代码分析,staticvoidMain(stringargs)Console.WriteLine(请输入一个字符串:);/输入提示/从控制台读入字符串stringline=Console.ReadLine();/循环输出字符串中的字符foreach(charcinline)Console.WriteLine(c);Console.ReadLine();,依次循环字符串中的每个字符,5.6二重循环进阶,某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分,共3个班级,循环3次计算每个班的平均分每班4名学员,循环4次累加总分,需要使用二重循环实现,for、while、do-while、foreach语句可以相互嵌套,关键代码,/外层循环控制逐个计算每个班级的平均分for(i=0;i3;i+)sum=0;/总分计数清零Console.WriteLine(n请输入第0个班的成绩,i+1);/内层循环计算每个班级的总分for(j=0;j4;j+)Console.Write(第0个学员的成绩:,j+1);score=int.Parse(Console.ReadLine();sum=sum+score;average=sum/4;Console.WriteLine(第0个班的平均分为:1分,i+1,average);,内层循环结束后,才执行外层循环的语句,二重循环进阶,用*打印一个直角三角形图案,二重循环:外层控制行数,内层打印每行的*图形特点:每行的*个数与行数相等,关键代码,introws=5;/打印的行数inti,j;/循环变量/外层循环控制打印的行数for(i=1;i=rows;i+)/内层循环控制每行打印*的个数for(j=1;j=i;j+)Console.Write(*);Console.Write(n);,内层循环的结束条件与外层循环变量有关,5.7break和continue语句,在C#中可以用跳转语句来改变程序的执行顺序。在程序中采用跳转语句,可以避免可能出现的死循环。C#中的跳转语句有break语句、continue语句、goto语句和return语句等。1.break语句使用break语句时,将结束循环,执行循环的后续语句。2.continue语句continue语句作用是结束本次循环,跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。,分别调试如下程序,理解break与continue的跳转。课本实例4-14课本实例4-15,练习,流程控制进阶,在循环结构中,continue和break怎样跳转?,for()continue;,for()break;,跳出循环结构,跳到下次循环,在循环中会怎样呢?,【例3-9】利用break与continue控制输出130的数值。,流程控制进阶continue,下面红色框中代码的作用是什么?,intcount=0;for(i=0;i3;i+)/提示输入成绩for(j=0;j4;j+)Console.Write(第0个学员的成绩:,j+1);score=int.Parse(Console.ReadLine();sum=sum+score;if(score85)continue;count+;/计算平均分并输出,continue跳出本次循环,继续下一次循环,统计成绩在85分以上的学员人数,流程控制进阶break,5个专卖店促销,每个专卖店每人限购3件衣服,可以随时选择离开,离店时要结账,for(i=0;i5;i+)/每次进一个专卖店for(j=0;j3;j+)/每个店限购3件if(离开这家店)break;选购一件衣服结账,关键代码回顾,for(i=0;i5;i+)/外层循环控制依次进入下一个专卖店Console.WriteLine(n欢迎光临第0家专卖店,i+1);for(j=0;j3;j+)/内层循环一次买一件衣服Console.Write(要离开吗?y/n);choice=Console.ReadLine();if(choice=y)/如果离开,就跳出,结账,进入下一个店break;Console.WriteLine(买了一件衣服);count+;/买一件衣服Console.WriteLine(离店结账);,break跳出内层循环,choice=y,流程控制进阶,for()for()continue;,for()for()break;,跳出本层循环,继续执行外层循环,跳出本次循环,继续下一次循环,break和continue用在二重循环中:,小结,在控制台打印出如下图案(9行9列):,提示:使用二重循环,staticvoidMain(stringargs)inti,j;/循环变量for(i=1;i=9;i+)/外层循环控制行数for(j=1;j=9;j+)/内层循环控制每行打印的*数Console.Write(*t);Console.WriteLine();/换行Console.ReadLine();,总结,C#中的循环结构有哪些?break和continue用在内层循环时跳转到哪里?二重循环实现冒泡排序,循环的中止条件是什么?,【例5-16】一张单据上有一个5位数的号码为6*42,其中百位数和千位数已模糊不清,但知道该数能被57和67除尽。设计一个算法,找出该单据所有可能的号码。,循环结构项目一,循环结构项目二:百钱买百鸡,【实例题目5-17】我国古代数学家在算经中出了一道题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡、小鸡各多少?,循环结构项目三:捉拿肇事司机,【练习题目5_18】一辆卡车违反交通规则,撞死行人,司机畏罪驾车逃跑。当时有三个人目击这一车祸的发生,但都没有看清卡车的牌照号码,只记住牌照号码的部分特征,甲记住牌照号码的前两位数字是相同的,乙记住牌照号码的后两位数字是相同的,丙是一位数学家,他说“车牌号码肯定是四位数,而且恰好是一个整数的平方。”,并且丙已推导出符合该条件的号码只可能有一个。根据这些信息来判定车牌号并捉拿肇事司机。,ThankYou!,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!