![学习情景结构化程序设计循环结构_第1页](http://file4.renrendoc.com/view/5a3d5ae91684106390caadc9e602e301/5a3d5ae91684106390caadc9e602e3011.gif)
![学习情景结构化程序设计循环结构_第2页](http://file4.renrendoc.com/view/5a3d5ae91684106390caadc9e602e301/5a3d5ae91684106390caadc9e602e3012.gif)
![学习情景结构化程序设计循环结构_第3页](http://file4.renrendoc.com/view/5a3d5ae91684106390caadc9e602e301/5a3d5ae91684106390caadc9e602e3013.gif)
![学习情景结构化程序设计循环结构_第4页](http://file4.renrendoc.com/view/5a3d5ae91684106390caadc9e602e301/5a3d5ae91684106390caadc9e602e3014.gif)
![学习情景结构化程序设计循环结构_第5页](http://file4.renrendoc.com/view/5a3d5ae91684106390caadc9e602e301/5a3d5ae91684106390caadc9e602e3015.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习情景结构化程序设计循环结构第一页,共四十六页,2022年,8月28日结构化程序设计语句
本讲要点:
while、do…while和for等循环语句的作用及其使用
continue和break语句的作用及其使用第二页,共四十六页,2022年,8月28日
循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。
采用循环结构可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。循环结构按其循环体是否嵌套从属的子循环结构,可分为单循环结构和多重循环结构。5.1循环结构概念第三页,共四十六页,2022年,8月28日5.1循环结构概念
C#中提供了4种循环语句:while循环do…while循环
for循环第四页,共四十六页,2022年,8月28日5.2
while循环语句[格式]:
while(条件表达式){
循环体;
}不要加“;”第五页,共四十六页,2022年,8月28日usingSystem;classSumw{staticvoidMain(){intn=1;while(n<6){Console.WriteLine(“n={0}”,n);n++;}}}例5-1:写出下列程序的运行结果。结果:第六页,共四十六页,2022年,8月28日例5-2:使用while语句,编程计算1+2+…+1000usingSystem;classSumw{staticvoidMain(){inti=1,sum=0;while(i<=1000){sum+=i;i++;}Console.WriteLine(“1+2+…+1000={0}”,sum);}}第七页,共四十六页,2022年,8月28日(1)如果要实现sum=1+2+3+…+10,怎样修改程序?(2)如果要实现sum=30+31+32+…+50,怎样修改程序?while(i<=10)inti=30;While(i<=50)使用while语句练习10分钟第八页,共四十六页,2022年,8月28日usingSystem;classValue{staticvoidMain(){inti=10;longx=1;while(i>0){x*=i;i--;}Console.WriteLine(“10!={0}”,x);}}例5-3:使用while语句,编程计算10的阶乘值。第九页,共四十六页,2022年,8月28日1.下列程序所计算的数学式是()inta=0,i=2;while(i<100){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练习2分钟第十页,共四十六页,2022年,8月28日【练习5-4】编程求下式的值S=12+22+32+……+n2练习10分钟第十一页,共四十六页,2022年,8月28日5.3do……while循环语句
[格式]:
do{
循环体;
}
while(条件表达式);必须有“;”第十二页,共四十六页,2022年,8月28日do…while执行过程while执行过程第十三页,共四十六页,2022年,8月28日usingSystem;classTestDoWhile{staticvoidMain(){intx,y=0;do{x=y++;Console.WriteLine(x);}while(y<5);}}结果:例5-5:写出下列程序的运行结果。第十四页,共四十六页,2022年,8月28日例5-6如果给你一张无限大的纸(纸的厚度为0.5mm),将之反复对折多少次,可超过珠峰高度(8848米)?想一想?问题引申:纸张对折多少次可达到地球到月球的平均距离(384,400千米)呢?如果想解决此问题,怎么去修改上面的程序?第十五页,共四十六页,2022年,8月28日【练习5-7】使用do…while语句,计算100以内的偶数和。练习10分钟第十六页,共四十六页,2022年,8月28日1.while语句循环结构和do...while语句循环结构的区别在于()A.while语句的执行效率较高B.do...while语句编写程序较复杂C.无论条件是否成立,while语句都要执行一次循环体D.do...while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体练习2分钟第十七页,共四十六页,2022年,8月28日相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的许诺吗?共要多少麦子赏赐他的宰相?合多少立方米?(1立方米麦子约1.42e8粒)练习10分钟第十八页,共四十六页,2022年,8月28日5.4for循环语句
for循环常常用于已知循环次数的情况。
语法格式:
for(初始化表达式;循环条件;迭代表达式){
循环语句序列;}①③④②第十九页,共四十六页,2022年,8月28日例5-8:使用for循环语句,编程输出1~20的每个奇数的平方。usingSystem;classsquare{staticvoidMain(){ints;for(inti=1;i<20;i+=2){s=i*i;Console.Write("{0}\t",s);}}}
结果:第二十页,共四十六页,2022年,8月28日staticvoidMain(){longm=1;for(inti=1;i<=10;i++) {m*=i; } Console.WriteLine("{0}!={1}",i-1,m);}}编程5-9:用for语句输出10!的值:结果:第二十一页,共四十六页,2022年,8月28日(1)如果对循环变量在for语句前已赋初值,则在for语句中可省略表达式1,但要保留其后的分号。
...inti=1;for(;i<=20;i++)...for语句的几点说明:第二十二页,共四十六页,2022年,8月28日(2)for语句可以省略表达式2,即不判断表达式条件是否成立,循环将一直进行下去,但应保留表达式2后面的分号。此时,需要在循环体中添加跳出循环的控制语句。例:for(inti=1;;i++){s=i*i;Console.WriteLine("{0}\t",s);if(i==10)break;}for语句的几点说明:第二十三页,共四十六页,2022年,8月28日(3)for中可以省略表达式3。此时应在循环体中添加改变循环变量值的语句,以结束循环。例:for(inti=1;i<=10;){s=i*i;Console.WriteLine("{0}\t",s);i++;}
for语句的几点说明:第二十四页,共四十六页,2022年,8月28日(4)for语句中的3个表达式可同时省略。inti=1;for(;;){s=i*i;Console.WriteLine("{0}\t",s);i++;if(i==10)break;}for语句的几点说明:第二十五页,共四十六页,2022年,8月28日【练习5-10】
使用for语句,计算100以内奇数的和。练习10分钟第二十六页,共四十六页,2022年,8月28日for循环语句也可以嵌套for循环示例5-11inti,j;/*打印九九乘法表。*/for(i=1;i<10;i++){
for(j=1;j<=i;j++){
Console.Write(“{0}×{1}={2,-2}“,j,i,i*j);}
//输出完一行后换行。
Console.WriteLine();}第二十七页,共四十六页,2022年,8月28日例5-12:利用for循环嵌套语句,求1!+2!+3!+...+10!的和。usingSystem;classMultiSum{staticvoidMain(){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);}}结果:第二十八页,共四十六页,2022年,8月28日
5.5foreach循环结构foreach循环一般用于遍历整个集合或数组foreach(元素类型
变量名
in集合或者数组名){//语句}输入一个字符串,输出其中的每个字符第二十九页,共四十六页,2022年,8月28日关键代码分析staticvoidMain(string[
]args){Console.WriteLine("请输入一个字符串:");//输入提示//从控制台读入字符串stringline=Console.ReadLine();//循环输出字符串中的字符foreach(charcinline){Console.WriteLine(c);}Console.ReadLine();}依次循环字符串中的每个字符第三十页,共四十六页,2022年,8月28日5.6二重循环进阶
某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分共3个班级,循环3次计算每个班的平均分每班4名学员,循环4次累加总分需要使用二重循环实现for、while、do-while、foreach语句可以相互嵌套第三十一页,共四十六页,2022年,8月28日关键代码//外层循环控制逐个计算每个班级的平均分for
(i=0;i<3;i++){
sum=0;//总分计数清零
Console.WriteLine("\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);}内层循环结束后,才执行外层循环的语句第三十二页,共四十六页,2022年,8月28日二重循环进阶用*打印一个直角三角形图案二重循环:外层控制行数,内层打印每行的*图形特点:每行的*个数与行数相等第三十三页,共四十六页,2022年,8月28日关键代码introws=5;//打印的行数inti,j;
//循环变量//外层循环控制打印的行数for(i=1;i<=rows;i++){//内层循环控制每行打印*的个数
for(j=1;j<=i;j++){Console.Write("*");
}Console.Write("\n");}内层循环的结束条件与外层循环变量有关第三十四页,共四十六页,2022年,8月28日5.7break和continue语句
在C#中可以用跳转语句来改变程序的执行顺序。在程序中采用跳转语句,可以避免可能出现的死循环。C#中的跳转语句有break语句、continue语句、goto语句和return语句等。1.break语句使用break语句时,将结束循环,执行循环的后续语句。
2.continue语句
continue语句作用是结束本次循环,跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。第三十五页,共四十六页,2022年,8月28日分别调试如下程序,理解break与continue的跳转。课本实例4-14课本实例4-15练习12分钟第三十六页,共四十六页,2022年,8月28日流程控制进阶在循环结构中,continue和break怎样跳转?for(…){…………
continue;…………}……for(…){…………
break;…………}……跳出循环结构跳到下次循环在循环中会怎样呢?第三十七页,共四十六页,2022年,8月28日【例3-9】利用break与continue控制输出1~30的数值。第三十八页,共四十六页,2022年,8月28日流程控制进阶——continue下面红色框中代码的作用是什么?intcount=0;for(i=0;i<3;i++){//提示输入成绩
for(j=0;j<4;j++)
{Console.Write("第{0}个学员的成绩:",j+1);score=int.Parse(Console.ReadLine());sum=sum+score;
if(score<85){continue;}
count++;
}//计算平均分并输出}continue跳出本次循环,继续下一次循环统计成绩在85分以上的学员人数第三十九页,共四十六页,2022年,8月28日流程控制进阶——break
5个专卖店促销,每个专卖店每人限购3件衣服,可以随时选择离开,离店时要结账for(i=0;i<5;i++)//每次进一个专卖店{for(j=0;j<3;j++)//每个店限购3件{if(离开这家店){
break;}
选购一件衣服}
结账}第四十页,共四十六页,2022年,8月28日关键代码回顾for(i=0;i<5;i++)
//外层循环控制依次进入下一个专卖店{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"第四十一页,共四十六页,2022年,8月28日流程控制进阶for(…){for(…){…………continue
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TOF的护理幻灯片
- 《急救知识培训》课件
- 《IT项目管理培训》课件
- 商务沟通练习测试题附答案(一)
- 《移动ERP前景》课件
- 信用管理师三级复习试题有答案
- 调查问卷设计指导课参考课件
- 《项目管理作业》课件
- 热点专题 4-1 三角函数概念与诱导公式【10类题型】(解析版)- 2025年高考数学热点题型追踪与重难点专题突破(新高考专用)
- 《酶和维生素》课件
- (2024版)小学语文新课标解读:更加注重阅读与写作
- 半导体行业质量管理与质量控制
- 五年级上册口算练习1000题及答案
- 五年级数学(小数四则混合运算)计算题及答案汇编
- 数学六年级上册《弧长》课件
- 5篇高中生研究项目详细报告
- 个人ip运营策划方案
- 《盛开的紫荆花》课件
- 广东省广州市黄埔区2023-2024学年八年级上学期期末生物试卷+
- 我们怎样思维经验与教育
- 北京市丰台区市级名校2024届数学高一第二学期期末检测模拟试题含解析
评论
0/150
提交评论