版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#C#程序设计基础程序设计基础第第4 4章章 C#C#中的循环中的循环 主要内容主要内容 dodo循环循环 whilewhile循环循环 forfor循环循环 foreachforeachC#C#程序设计基础程序设计基础 在第3章的学习中,读者已经掌握了条件结构。使用条件结构可以使程序实现判断逻辑。但是,这些还不够,在本章,读者将学习循环结构。有了循环结构,有利于利用计算机强大的计算能力,让程序实现繁重的计算任务。同时循环结构还可以简化程序编码,更好地实现理想的效果。C#C#程序设计基础程序设计基础4.1 4.1 基本循环基本循环 为什么需要循环,先一起来看一个问题:李逍遥决定对赵灵儿说10
2、000遍“我爱你”,以表达自己对赵灵儿的真心。想好了以后,李逍遥打算用C#程序写给赵灵儿看。10000遍不是一个小数目,但是李逍遥说到做到,坚持把10000遍写完了,这个工程有些巨大,李逍遥写了1天才完成。拿给赵灵儿看后,赵灵儿果然被感动了,但是赵灵儿绝顶聪明,说事情还有更简单的做法。于是给李逍遥指点了一招:循环结构。那么循环结构是什么呢?一起来见识下。C#C#程序设计基础程序设计基础01class ILoveYou102 03 public static void ShowILoveYou()04 05 static void Main(string args)06 07 Console.W
3、riteLine(第1遍说:我爱你!);08 Console.WriteLine(第2遍说:我爱你!);09 Console.WriteLine(第2遍说:我爱你!);10 /此处省略9995条输出语句11 Console.WriteLine(第9999遍说:我爱你!);12 Console.WriteLine(第10000遍说:我爱你!);13 14 C#C#程序设计基础程序设计基础01class ILoveYou202 03 public static void ShowILoveYou()04 05 int i = 1;06 /使用while循环,当i10000时执行循环执行07 whi
4、le (i=10000) 08 09 Console.WriteLine(第+i+遍说:我爱你);10 i+; /i+111 12 Console.ReadLine();13 14 C#C#程序设计基础程序设计基础4.1.1 4.1.1 什么是什么是whilewhile循环循环循环就是重复地做一件事:重复地说“我爱你!”。无论是生活中还是C#中,所有的循环结构都有这样的特点:首先,环不是无休止进行的,满足一定条件的时候循环才会继续,称为“循环条件”。循环条件不满足的时候,循环退出。其次,循环结构是反复进行相同的或类似的一系列操作,称为“循环操作”。比如,打印50份试卷、滚动的车轮,这些是生活中
5、的循环结构。 循环结构的共同特征循环结构循环条件循环操作打印50份试卷只要打印的试卷份数不足50份就继续打印打印一份试卷,打印过的总份数加1滚动车轮没有到目的地就继续车轮滚一圈,离目的地更近一点C#C#程序设计基础程序设计基础whilewhile循环语法循环语法 while (布尔表达式布尔表达式) 循环体循环体 While 循环的一个特点:先判断,后执行。需要有个递增变量C#C#程序设计基础程序设计基础while语句 C#C#程序设计基础程序设计基础4.1.2 while4.1.2 while的使用的使用 在运行该程序的时,只有当用户输入y(不分大小写)的时候,循环才退出。部分代码如下 wh
6、ile (answer != y) /只要输入的不是“y”,就执行循环操作 Console.WriteLine(李逍遥:); Console.WriteLine(训练训练坚持训练!); Console.WriteLine(抓紧抓紧抓紧时间!咖啡以后可以喝。); Console.WriteLine(加油!我李逍遥一定能打败拜月); Console.WriteLine(李逍遥:我可以打败拜月了吗?(y/n); /获取用户输入,去掉空格,将输入的字母转化成小写 answer = Console.ReadLine().Trim().ToLower(); Console.WriteLine(灵儿:逍遥哥
7、哥,你真棒!); Console.ReadLine();C#C#程序设计基础程序设计基础思考,该程序运行后的结果?1. Console.WriteLine(请输入正整数:);2. int a = int.Parse (Console.ReadLine();3. int i=1,n=1;4. while (i=a)5. 6. n *= i;7. i+; 8. 9. Console.WriteLine(0!=1,a,n);10. Console.Read(); C#C#程序设计基础程序设计基础4.1.3 while4.1.3 while循环常见错误循环常见错误 张三根据问题写出了如代码所示。01
8、static void Main(string args)/程序入口02 03 int i = 1; /定义循环变量04 while (i 8)/使用While循环05 06 Console.WriteLine(我能行!);07 i+;08 09 Console.Read();10 只打印了7遍.张三的代码错在哪里呢?仔细查看示例中的代码,从i的值为1的时候开始循环,根据循环条件i8,i的值等于7的时候打印第7遍,到i的值为8的时候,循环条件已经不满足,循环就退出了,所以打印了7遍。排错方法:将循环条件修改为i=8,或者将“int i=1”修改为“int i=0”C#C#程序设计基础程序设计基
9、础4.1.4 4.1.4 什么是什么是do-whiledo-while循环循环 通过前面的学习可以得知,当一开始循环条件不满足的时候,while循环一遍也不会执行。但是有的时候,又有这样的需求:无论如何循环都要执行一遍,再判断循环条件是否继续执行。do-while循环就满足了这样的需求。也就是说,do-while循环是一种至少要执行一遍循环操作的循环结构。C#C#程序设计基础程序设计基础do while语句 do循环体;while(布尔表达式); Do-whileDo-while循环的特点是:循环的特点是:先执行,再判断。先执行,再判断。 C#C#程序设计基础程序设计基础4.1.5 do-wh
10、ile4.1.5 do-while循环的使用循环的使用 现在就使用do-while循环解决4.1.4提出的问题。使用do-while循环解决问题的步骤与采用while循环解决问题的步骤是类似的: (1)分析循环条件和循环操作; (2)套用do-while语法写出代码; (3)检查循环是否能够退出。C#C#程序设计基础程序设计基础循环条件:打不过小龙女,循环操作:继续训练。01class DoWhileSample02 03 public static void ShowDoWhileSample()04 05 string answer = ; /回答06 do /执行一遍07 08 Cons
11、ole.WriteLine(杨过:训练训练坚持训练!);09 Console.WriteLine(早上跑步,中午练剑,晚上学习!);10 Console.WriteLine(可以打败姑姑了吗?(y/n):);11 answer = Console.ReadLine().Trim().ToLower(); /接收用户输入12 while (answer != y); /只要输入的不是“y”,继续循环13 Console.WriteLine(过儿真厉害,可以参加比赛了!);14 Console.ReadLine();15 16 C#C#程序设计基础程序设计基础自己动手写一个小程序。 问题: 连续输
12、入武侠剧里的侠士或侠女的名字,直到输入S停止。C#C#程序设计基础程序设计基础4.1.6 while4.1.6 while循环和循环和do-whiledo-while循环的区循环的区别别(1)相同处:都是循环结构,使用“while(循环条件)”表示循环条件,使用大括号将循环操作括起来。(2)不同处: 语法不同。与while循环相比,do-while循环将while关键字和循环条件放在后面,而且前面多了do关键字,后面多了一个分号。 执行次序不同。while循环先判断,再执行;do-while循环先执行,再判断。 一开始循环条件就不满足的情况下,while循环一次也不会执行,do-while循环
13、则不管什么情况都至少执行一遍。C#C#程序设计基础程序设计基础4.1.7 4.1.7 什么是什么是forfor循环循环01class ILoveYou302 03 public static void ShowILoveYou()04 05 for (int i = 0; i 10000; i+)06 07 Console.WriteLine(我爱你!);08 09 Console.ReadLine();10 11 C#C#程序设计基础程序设计基础 For循环可以划分成4个部分: 初始部分 循环体 迭代部分 循环条件C#C#程序设计基础程序设计基础for 语句C#C#程序设计基础程序设计基础
14、for循环的执行顺序如下: (1)执行初始部分(int i = 0;)。 (2)进行循环条件判断(i10000;)。 (3)根据循环条件判断结果。如果为true,执行循环体;如果结果为false,退出循环,第(4)、(5)步均不执行。 (4)执行迭代部分,改变循环变量值(i+)。 (5)重复第(2)、第(3)、第(4),依次进行直到退出for循环结构。 可见,在for循环中,表达式1这个初始部分仅仅执行了一次。C#C#程序设计基础程序设计基础 问题情景:循环输入高三某学生的问题情景:循环输入高三某学生的6 6门成绩,并计门成绩,并计算平均分。算平均分。 教材:P48 代码:ForSample1
15、4.1.8 for4.1.8 for循环的使用循环的使用C#C#程序设计基础程序设计基础循环变题初值可设多个,用逗号隔开。 问题情景:输入随意一个整数,根据这个值输出问题情景:输入随意一个整数,根据这个值输出加法表。假设输入值为加法表。假设输入值为8 8,效果图如教材,效果图如教材P49P49所示。所示。 代码:ForSample2C#C#程序设计基础程序设计基础 表达式1使用了一个特殊的形式,其是用“,”隔开的多个表达式组成的表达式。 i = 0, j = num 在表达式1中,分别对变量i和j赋初值,用来表示两个加数。表示式3也使用了这种形式。 i+, j 在这种特殊形式的表达式中,运算顺
16、序是从左到右。每次循环体执行完,先执行i自加1,再执行j自减1。C#C#程序设计基础程序设计基础4.1.9 for4.1.9 for循环常见错误循环常见错误 for循环是功能更强、使用更广泛的一种循环结构。for语句的使用非常灵活,不仅可以用于循环次数固定了的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况。 (1)缺少循环变量初始化 (2)缺少条件判断语句 (3)缺少迭代部分 (4)缺少初始部分、迭代部分和条件判断C#C#程序设计基础程序设计基础4.2 C#4.2 C#中特有的中特有的foreachforeach循环循环这次要结识一位非常强大的新朋友了foreach循环。许多情况,
17、都可以用foreach循环来描述。 比如:超市结账时,把每一件物品计价;腾空箱子时,将里面的东西一件件掏出来。记住,foreach中的each是每个的意思,那么foreach就是循环每一个。foreach循环很简单,也很常用,在后面的编程中,foreach循环将大显身手!针对问题进行学习,容易加深理解。C#C#程序设计基础程序设计基础01class ForSample302 03 public static void ShowForSample()04 05 Console.WriteLine(请输入一个字符串:);06 string str = Console.ReadLine(); /接收
18、字符串07 /*使用for循环输出每个字符08 * 使用字符串的Length属性获得字符串的长度作为循环次数09 * */10 for (int i = 0; i str.Length; i+)11 12 /输出字符,使用Substring方法提取字符13 Console.WriteLine(str.Substring(i,1);14 15 Console.ReadLine();16 17 问题:从控制台输入一个字符串,一次输出其中的每个字符。请使用问题:从控制台输入一个字符串,一次输出其中的每个字符。请使用FORFOR循环实现。循环实现。C#C#程序设计基础程序设计基础4.2.1 4.2.1
19、 什么是什么是foreachforeach循环循环foreach就是循环每一个,其语法很简单,用法也简单,但是非常实用。语法如下: foreach(类型 元素(局部变量) in 集合或者数组) 代码块C#C#程序设计基础程序设计基础01class ForeachSample102 03 public static void ShowForeachSample()04 05 Console.WriteLine(请输入一个字符串:);06 string str = Console.ReadLine(); /接收字符串07 /循环输出字符串中的字符08 foreach (char c in str)
20、09 10 Console.WriteLine(c);11 12 Console.ReadLine();13 14 问题:从控制台输入一个字符串,一次输出其问题:从控制台输入一个字符串,一次输出其中的每个字符。请使用中的每个字符。请使用ForeachForeach循环实现。循环实现。C#C#程序设计基础程序设计基础4.2.2 foreach4.2.2 foreach循环的使用循环的使用学而不思则罔,思而不学则殆。学与思要结合。读者学了foreach循环后有什么感想呢?就目前所学的知识来说,在处理字符串方面是挺适用的。比如下面的例子。问题:某个程序需要对用户输入的电子邮箱地址的格式进行判断,要求
21、格式必须正确(比如必须包含“”和“.”),如果不正确就要求用户重新输入。 教材P54,代码:ForeachSample2 foreach (char c in email)foreach (char c in email) if (c = ) / if (c = ) /如果找到了如果找到了“ ” condition1 = true; condition1 = true; if (c = .) / if (c = .) /如果找到了如果找到了“. .” condition2 = true; condition2 = true; C#C#程序设计基础程序设计基础4.2.3 4.2.3 什么是死循环
22、什么是死循环什么是死循环,其实前面已经见过面了,只是相逢还未曾相识。还记得4.1节的错误(2)和错误(3)吗?那就是死循环。死循环就是永远不会退出的循环。死循环是写程序的过程中应该极力避免的情况,大家一定要格外小心。写好循环代码后仔细检查一下循环是否能够退出。对于初学者来说,由于知识掌握得不牢固或者疏忽,极易造成死循环。一般造成死循环的原因有:缺少条件判断语句或者迭代部分,如4.1节的错误(2)和错误(3);条件判断语句不准确,比如用true代替条件判断语句;忘写跳转语句。C#C#程序设计基础程序设计基础4.3 4.3 循环结构总结循环结构总结 在需要多次重复执行一个或多个语句时,往往就需要考
23、虑使用循环语句来解决,可以大大简化编码。到目前为止,读者已经学习了C#提供的4种最主要的循环结构,即while循环、do-while循环、for循环和foreach循环结构。C#C#程序设计基础程序设计基础4.4 4.4 多重循环多重循环 内层循环和外层循环就好比地球的自转和公转,地球自转一次,就是内层循环循环一次,地球公转一次,就是外层循环循环一次。当地球自转365次后,才完成了一次公转。也就是说,外层循环每执行一次,内层循环都会从头到尾完整地执行一遍。C#C#程序设计基础程序设计基础教材P56,代码:NestedLoopSample1 问题情景:李逍遥任蜀山掌门后,举行了一次团体比赛。比赛
24、分4个队,每个队3名成员。要求循环输入每个队每名成员的成绩,然后计算每个队成员的平均分。C#C#程序设计基础程序设计基础C#C#程序设计基础程序设计基础教材P57NestedLoopSample2 问题:使用*打印如图所示的直角三角形图案(注意:使用多重循环打印)循环终止条件:每次内层循环j的最大值都和i相等,所以内层循环的终止条件是j=iC#C#程序设计基础程序设计基础4.5 4.5 跳转语句跳转语句 通过对循环结构的学习,读者已经了解了在执行循环结构时要进行条件判断,只有在条件为“假”时,才能结束循环。但是,有的时候想要根据需要停止整个循环或者跳到下一次循环,有时需要从程序的一部分跳到程序的其他部分,该怎么办呢?其实,这些都可以用跳转语句来完成。C#支持3种形式的跳转:break(停止)、continue(继续)和return(返回)。至于return,本书将放在后面的章节进行讲解。现在,本节只学习其中的两种:break和continue。C#C#程序设计基础程序设计基础4.6.1 4.6.1 使用使用breakbreak语句语句 见到break这个关键字,读者已经不生疏了,因为在前面使用switch结构的时候,笔者已经再三强调不要落下break。在switch结构中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度文化艺术vi设计制作合同
- 二零二五年度按揭贷款服务与资产评估合同3篇
- 二零二五年度投标保函担保合同范本
- 二零二五年度房屋买卖及贷款担保协议3篇
- 海南职业技术学院《现代信息网络技术》2023-2024学年第一学期期末试卷
- 海南医学院《电子商务理论与实务》2023-2024学年第一学期期末试卷
- 二零二五年度水利设施安装与维护合同3篇
- 2025版防盗门个性化定制加工承揽协议范本3篇
- 二零二五年度智能家居控制系统开发委托服务合同3篇
- 某房地产公司安全管理应急预案范文(2篇)
- 《神经发展障碍 儿童社交沟通障碍康复规范》
- 2025年中建六局二级子企业总经理岗位公开招聘高频重点提升(共500题)附带答案详解
- 2025年辽宁省大连市普通高中学业水平合格性考试模拟政治试题(一)
- 2024版户外广告牌安装与维护服务合同2篇
- 云南省昆明市五华区2023-2024学年九年级上学期期末数学试卷
- 安徽省合肥市第四十中学2024~2025学年九年级上学期化学期末模拟试题(含答案)
- 安徽省淮北市(2024年-2025年小学六年级语文)部编版期末考试((上下)学期)试卷及答案
- 大学生职业生涯规划
- 干燥综合征的护理查房
- 江苏省徐州市2023-2024学年六年级上学期期末科学试卷(含答案)2
- 五年级数学上册七大重点类型应用题
评论
0/150
提交评论