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

上传人:牧羊曲112 文档编号:6156201 上传时间:2023-09-30 格式:PPT 页数:48 大小:867.50KB
返回 下载 相关 举报
学习情景结构化程序设计循环结构.ppt_第1页
第1页 / 共48页
学习情景结构化程序设计循环结构.ppt_第2页
第2页 / 共48页
学习情景结构化程序设计循环结构.ppt_第3页
第3页 / 共48页
学习情景结构化程序设计循环结构.ppt_第4页
第4页 / 共48页
学习情景结构化程序设计循环结构.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《学习情景结构化程序设计循环结构.ppt》由会员分享,可在线阅读,更多相关《学习情景结构化程序设计循环结构.ppt(48页珍藏版)》请在三一办公上搜索。

1、学习情景5,Visual C#结构化程序设计循环结构设计,结构化程序设计语句,本讲要点:while、dowhile和for等循环语句的作用及其使用 continue和break语句的作用及其使用,循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。采用循环结构可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。循环结构按其循环体是否嵌套从属的子循环结构,可分为单循环结构和多重循环结构。,5.1 循环结构概念,5.1 循环结构概念,C#中提供了4种循环语句:while循环dowhile循环 for循环,

2、5.2 while循环语句,格式:while(条件表达式)循环体;,不要加“;”,using System;class Sumw static void Main()int n=1;while(n6)Console.WriteLine(“n=0”,n);n+;,例5-1:写出下列程序的运行结果。,结果:,例5-2:使用while语句,编程计算1+2+1000,using System;class Sumw static void Main()int i=1,sum=0;while(i=1000)sum+=i;i+;Console.WriteLine(“1+2+1000=0”,sum);,(1)

3、如果要实现 sum=1+2+3+10,怎样修改程序?(2)如果要实现 sum=30+31+32+50,怎样修改程序?,while(i=10),int i=30;While(i=50),使用 while语句,练 习,using System;class Value static void Main()int i=10;long x=1;while(i0)x*=i;i-;Console.WriteLine(“10!=0”,x);,例5-3:使用while语句,编程计算10的阶乘值。,1.下列程序所计算的数学式是()int a=0,i=2;while(i100)a+=i;i+=2;A.a=1+2+4

4、+98 B.a=1+2+4+100 C.a=2+4+6+98 D.a=2+4+6+100,练 习,【练习5-4】编程求下式的值,S=12+22+32+n2,练 习,5.3 dowhile循环语句,格式:do 循环体;while(条件表达式);,必须有“;”,dowhile执行过程 while执行过程,using System;class TestDoWhile static void Main()int x,y=0;do x=y+;Console.WriteLine(x);while(y5);,结果:,例5-5:写出下列程序的运行结果。,例5-6,如果给你一张无限大的纸(纸的厚度为0.5mm)

5、,将之反复对折多少次,可超过珠峰高度(8848米)?想一想?问题引申:纸张对折多少次可达到地球到月球的平均距离(384,400千米)呢?如果想解决此问题,怎么去修改上面的程序?,【练习5-7】使用dowhile语句,计算100以内的偶数和。,练 习,1.while语句循环结构和do.while语句循环结构的区别在于()Awhile语句的执行效率较高Bdo.while语句编写程序较复杂C无论条件是否成立,while语句都要执行一次循环体Ddo.while循环是先执行循环体,后判断条件表达式是否成 立,而while语句是先判断条件表达式,再决定是否执行循 环体,练 习,相传国际象棋是古印度舍罕王的

6、宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着88共64格的象棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的许诺吗?共要多少麦子赏赐他的宰相?合多少立方米?(1立方米麦子约1.42e8粒),练 习,5.4 for循环语句,for循环常常用于已知循环次数的情况。语法格式:for(初始化表达式;循环条件;迭代表达式)循环语句序列;,例5-8:使用for循环语句,编程输出120的每个奇数的平

7、方。,using System;class square static void Main()int s;for(int i=1;i20;i+=2)s=i*i;Console.Write(0t,s);,结果:,static void Main()long m=1;for(int i=1;i=10;i+)m*=i;Console.WriteLine(0!=1,i-1,m);,编程5-9:用for语句输出10!的值:,结果:,(1)如果对循环变量在for语句前已赋初值,则在for语句中可省略表达式1,但要保留其后的分号。.int i=1;for(;i=20;i+).,for语句的几点说明:,(2)

8、for语句可以省略表达式2,即不判断表达式条件是否成立,循环将一直进行下去,但应保留表达式2后面的分号。此时,需要在循环体中添加跳出循环的控制语句。例:for(int i=1;i+)s=i*i;Console.WriteLine(0t,s);if(i=10)break;,for语句的几点说明:,(3)for中可以省略表达式3。此时应在循环体中添加改变循环变量值的语句,以结束循环。例:for(int i=1;i=10;)s=i*i;Console.WriteLine(0t,s);i+;,for语句的几点说明:,(4)for语句中的3个表达式可同时省略。int i=1;for(;)s=i*i;Co

9、nsole.WriteLine(0t,s);i+;if(i=10)break;,for语句的几点说明:,【练习5-10】使用for语句,计算100以内奇数的和。,练 习,for循环语句也可以嵌套,for 循环示例5-11,int i,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!的和。,using System;class MultiSum static void

10、 Main()long s=0,m=1;for(int i=1;i=10;i+)m=1;for(int j=1;j=i;j+)m*=j;s=s+m;Console.WriteLine(1!+2!+3!+.+10!=0,s);,结果:,5.5 foreach 循环结构,foreach循环一般用于遍历整个集合或数组,foreach(元素类型 变量名 in 集合或者数组名)/语句,输入一个字符串,输出其中的每个字符,关键代码分析,static void Main(string args)Console.WriteLine(请输入一个字符串:);/输入提示/从控制台读入字符串 string line=

11、Console.ReadLine();/循环输出字符串中的字符 foreach(char c in line)Console.WriteLine(c);Console.ReadLine();,依次循环字符串中的每个字符,5.6 二重循环进阶,某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分,共3个班级,循环3次计算每个班的平均分每班4名学员,循环4次累加总分,需要使用二重循环实现,for、while、do-while、foreach 语句可以相互嵌套,关键代码,/外层循环控制逐个计算每个班级的平均分for(i=0;i 3;i+)sum=0;/总分计数清零 Console.Wri

12、teLine(n请输入第0个班的成绩,i+1);/内层循环计算每个班级的总分 for(j=0;j 4;j+)Console.Write(第0个学员的成绩:,j+1);score=int.Parse(Console.ReadLine();sum=sum+score;average=sum/4;Console.WriteLine(第0个班的平均分为:1分,i+1,average);,内层循环结束后,才执行外层循环的语句,二重循环进阶,用*打印一个直角三角形图案,二重循环:外层控制行数,内层打印每行的*图形特点:每行的*个数与行数相等,关键代码,int rows=5;/打印的行数int i,j;/循

13、环变量/外层循环控制打印的行数for(i=1;i=rows;i+)/内层循环控制每行打印*的个数 for(j=1;j=i;j+)Console.Write(*);Console.Write(n);,内层循环的结束条件与外层循环变量有关,5.7 break和continue语句,在C#中可以用跳转语句来改变程序的执行顺序。在程序中采用跳转语句,可以避免可能出现的死循环。C#中的跳转语句有break语句、continue语句、goto语句和return语句等。1.break语句 使用break语句时,将结束循环,执行循环的后续语句。2.continue语句 continue语句作用是结束本次循环,

14、跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。,分别调试如下程序,理解break与continue的跳转。课本实例4-14课本实例4-15,练 习,流程控制进阶,在循环结构中,continue 和 break怎样跳转?,for()continue;,for()break;,跳出循环结构,跳到下次循环,在循环中会怎样呢?,【例3-9】利用break与continue控制输出130的数值。,流程控制进阶continue,下面红色框中代码的作用是什么?,int count=0;for(i=0;i 3;i+)/提示输入成绩 for(j=0;j 4;j+)Conso

15、le.Write(第0个学员的成绩:,j+1);score=int.Parse(Console.ReadLine();sum=sum+score;if(score 85)continue;count+;/计算平均分并输出,continue 跳出本次循环,继续下一次循环,统计成绩在85分以上的学员人数,流程控制进阶break,5个专卖店促销,每个专卖店每人限购3件衣服,可以随时选择离开,离店时要结账,for(i=0;i5;i+)/每次进一个专卖店 for(j=0;j3;j+)/每个店限购3件 if(离开这家店)break;选购一件衣服 结账,关键代码回顾,for(i=0;i 5;i+)/外层循环

16、控制依次进入下一个专卖店 Console.WriteLine(n欢迎光临第0家专卖店,i+1);for(j=0;j 3;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;,跳出本层循

17、环,继续执行外层循环,跳出本次循环,继续下一次循环,break 和 continue 用在二重循环中:,小结,在控制台打印出如下图案(9行9列):,提示:使用二重循环,static void Main(string args)int i,j;/循环变量 for(i=1;i=9;i+)/外层循环控制行数 for(j=1;j=9;j+)/内层循环控制每行打印的*数 Console.Write(*t);Console.WriteLine();/换行 Console.ReadLine();,总结,C#中的循环结构有哪些?break 和 continue 用在内层循环时跳转到哪里?二重循环实现冒泡排序,

18、循环的中止条件是什么?,【例5-16】一张单据上有一个5位数的号码为6*42,其中百位数和千位数已模糊不清,但知道该数能被57和67除尽。设计一个算法,找出该单据所有可能的号码。,循环结构项目一,循环结构项目二:百钱买百鸡,【实例题目5-17】我国古代数学家在算经中出了一道题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡、小鸡各多少?,循环结构项目三:捉拿肇事司机,【练习题目5_18】一辆卡车违反交通规则,撞死行人,司机畏罪驾车逃跑。当时有三个人目击这一车祸的发生,但都没有看清卡车的牌照号码,只记住牌照号码的部分特征,甲记住牌照号码的前两位数字是相同的,乙记住牌照号码的后两位数字是相同的,丙是一位数学家,他说“车牌号码肯定是四位数,而且恰好是一个整数的平方。”,并且丙已推导出符合该条件的号码只可能有一个。根据这些信息来判定车牌号并捉拿肇事司机。,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号