学习情景结构化程序设计循环结构_第1页
学习情景结构化程序设计循环结构_第2页
学习情景结构化程序设计循环结构_第3页
学习情景结构化程序设计循环结构_第4页
学习情景结构化程序设计循环结构_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习情景结构化程序设计循环结构第一页,共四十六页,编辑于2023年,星期二结构化程序设计语句

本讲要点:

while、do…while和for等循环语句的作用及其使用

continue和break语句的作用及其使用第二页,共四十六页,编辑于2023年,星期二

循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。

采用循环结构可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。循环结构按其循环体是否嵌套从属的子循环结构,可分为单循环结构和多重循环结构。5.1循环结构概念第三页,共四十六页,编辑于2023年,星期二5.1循环结构概念

C#中提供了4种循环语句:while循环do…while循环

for循环第四页,共四十六页,编辑于2023年,星期二5.2

while循环语句[格式]:

while(条件表达式){

循环体;

}不要加“;”第五页,共四十六页,编辑于2023年,星期二usingSystem;classSumw{staticvoidMain(){intn=1;while(n<6){Console.WriteLine(“n={0}”,n);n++;}}}例5-1:写出下列程序的运行结果。结果:第六页,共四十六页,编辑于2023年,星期二例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);}}第七页,共四十六页,编辑于2023年,星期二(1)如果要实现sum=1+2+3+…+10,怎样修改程序?(2)如果要实现sum=30+31+32+…+50,怎样修改程序?while(i<=10)inti=30;While(i<=50)使用while语句练习10分钟第八页,共四十六页,编辑于2023年,星期二usingSystem;classValue{staticvoidMain(){inti=10;longx=1;while(i>0){x*=i;i--;}Console.WriteLine(“10!={0}”,x);}}例5-3:使用while语句,编程计算10的阶乘值。第九页,共四十六页,编辑于2023年,星期二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分钟第十页,共四十六页,编辑于2023年,星期二【练习5-4】编程求下式的值S=12+22+32+……+n2练习10分钟第十一页,共四十六页,编辑于2023年,星期二5.3do……while循环语句

[格式]:

do{

循环体;

}

while(条件表达式);必须有“;”第十二页,共四十六页,编辑于2023年,星期二do…while执行过程while执行过程第十三页,共四十六页,编辑于2023年,星期二usingSystem;classTestDoWhile{staticvoidMain(){intx,y=0;do{x=y++;Console.WriteLine(x);}while(y<5);}}结果:例5-5:写出下列程序的运行结果。第十四页,共四十六页,编辑于2023年,星期二例5-6如果给你一张无限大的纸(纸的厚度为0.5mm),将之反复对折多少次,可超过珠峰高度(8848米)?想一想?问题引申:纸张对折多少次可达到地球到月球的平均距离(384,400千米)呢?如果想解决此问题,怎么去修改上面的程序?第十五页,共四十六页,编辑于2023年,星期二【练习5-7】使用do…while语句,计算100以内的偶数和。练习10分钟第十六页,共四十六页,编辑于2023年,星期二1.while语句循环结构和do...while语句循环结构的区别在于()A.while语句的执行效率较高B.do...while语句编写程序较复杂C.无论条件是否成立,while语句都要执行一次循环体D.do...while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体练习2分钟第十七页,共四十六页,编辑于2023年,星期二相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的许诺吗?共要多少麦子赏赐他的宰相?合多少立方米?(1立方米麦子约1.42e8粒)练习10分钟第十八页,共四十六页,编辑于2023年,星期二5.4for循环语句

for循环常常用于已知循环次数的情况。

语法格式:

for(初始化表达式;循环条件;迭代表达式){

循环语句序列;}①③④②第十九页,共四十六页,编辑于2023年,星期二例5-8:使用for循环语句,编程输出1~20的每个奇数的平方。usingSystem;classsquare{staticvoidMain(){ints;for(inti=1;i<20;i+=2){s=i*i;Console.Write("{0}\t",s);}}}

结果:第二十页,共四十六页,编辑于2023年,星期二staticvoidMain(){longm=1;for(inti=1;i<=10;i++) {m*=i; } Console.WriteLine("{0}!={1}",i-1,m);}}编程5-9:用for语句输出10!的值:结果:第二十一页,共四十六页,编辑于2023年,星期二(1)如果对循环变量在for语句前已赋初值,则在for语句中可省略表达式1,但要保留其后的分号。

...inti=1;for(;i<=20;i++)...for语句的几点说明:第二十二页,共四十六页,编辑于2023年,星期二(2)for语句可以省略表达式2,即不判断表达式条件是否成立,循环将一直进行下去,但应保留表达式2后面的分号。此时,需要在循环体中添加跳出循环的控制语句。例:for(inti=1;;i++){s=i*i;Console.WriteLine("{0}\t",s);if(i==10)break;}for语句的几点说明:第二十三页,共四十六页,编辑于2023年,星期二(3)for中可以省略表达式3。此时应在循环体中添加改变循环变量值的语句,以结束循环。例:for(inti=1;i<=10;){s=i*i;Console.WriteLine("{0}\t",s);i++;}

for语句的几点说明:第二十四页,共四十六页,编辑于2023年,星期二(4)for语句中的3个表达式可同时省略。inti=1;for(;;){s=i*i;Console.WriteLine("{0}\t",s);i++;if(i==10)break;}for语句的几点说明:第二十五页,共四十六页,编辑于2023年,星期二【练习5-10】

使用for语句,计算100以内奇数的和。练习10分钟第二十六页,共四十六页,编辑于2023年,星期二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();}第二十七页,共四十六页,编辑于2023年,星期二例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);}}结果:第二十八页,共四十六页,编辑于2023年,星期二

5.5foreach循环结构foreach循环一般用于遍历整个集合或数组foreach(元素类型

变量名

in集合或者数组名){//语句}输入一个字符串,输出其中的每个字符第二十九页,共四十六页,编辑于2023年,星期二关键代码分析staticvoidMain(string[

]args){Console.WriteLine("请输入一个字符串:");//输入提示//从控制台读入字符串stringline=Console.ReadLine();//循环输出字符串中的字符foreach(charcinline){Console.WriteLine(c);}Console.ReadLine();}依次循环字符串中的每个字符第三十页,共四十六页,编辑于2023年,星期二5.6二重循环进阶

某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分共3个班级,循环3次计算每个班的平均分每班4名学员,循环4次累加总分需要使用二重循环实现for、while、do-while、foreach语句可以相互嵌套第三十一页,共四十六页,编辑于2023年,星期二关键代码//外层循环控制逐个计算每个班级的平均分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);}内层循环结束后,才执行外层循环的语句第三十二页,共四十六页,编辑于2023年,星期二二重循环进阶用*打印一个直角三角形图案二重循环:外层控制行数,内层打印每行的*图形特点:每行的*个数与行数相等第三十三页,共四十六页,编辑于2023年,星期二关键代码introws=5;//打印的行数inti,j;

//循环变量//外层循环控制打印的行数for(i=1;i<=rows;i++){//内层循环控制每行打印*的个数

for(j=1;j<=i;j++){Console.Write("*");

}Console.Write("\n");}内层循环的结束条件与外层循环变量有关第三十四页,共四十六页,编辑于2023年,星期二5.7break和continue语句

在C#中可以用跳转语句来改变程序的执行顺序。在程序中采用跳转语句,可以避免可能出现的死循环。C#中的跳转语句有break语句、continue语句、goto语句和return语句等。1.break语句使用break语句时,将结束循环,执行循环的后续语句。

2.continue语句

continue语句作用是结束本次循环,跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。第三十五页,共四十六页,编辑于2023年,星期二分别调试如下程序,理解break与continue的跳转。课本实例4-14课本实例4-15练习12分钟第三十六页,共四十六页,编辑于2023年,星期二流程控制进阶在循环结构中,continue和break怎样跳转?for(…){…………

continue;…………}……for(…){…………

break;…………}……跳出循环结构跳到下次循环在循环中会怎样呢?第三十七页,共四十六页,编辑于2023年,星期二【例3-9】利用break与continue控制输出1~30的数值。第三十八页,共四十六页,编辑于2023年,星期二流程控制进阶——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分以上的学员人数第三十九页,共四十六页,编辑于2023年,星期二流程控制进阶——break

5个专卖店促销,每个专卖店每人限购3件衣服,可以随时选择离开,离店时要结账for(i=0;i<5;i++)//每次进一个专卖店{for(j=0;j<3;j++)//每个店限购3件{if(离开这家店){

break;}

选购一件衣服}

结账}第四十页,共四十六页,编辑于2023年,星期二关键代码回顾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"第四十一页,共四十六页,编辑于2023年,星期二流程控制进阶for(…){for(…){…………continue;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论