accp50c#第二章教程课件.ppt_第1页
accp50c#第二章教程课件.ppt_第2页
accp50c#第二章教程课件.ppt_第3页
accp50c#第二章教程课件.ppt_第4页
accp50c#第二章教程课件.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章,用 Hello ACCP.NET 快速热身(二),回顾,static void Main(string args) / switch (num) case 1: Console.WriteLine(这是第一个case); case 2: Console.WriteLine(这是第二个case); default: Console.WriteLine(这是default); ,错误: 每个case和default中都应有break,static void Main(string args) / switch (num) case 1: Console.WriteLine(这是第一个cas

2、e); break; case 2: Console.WriteLine(这是第二个case); break; default: Console.WriteLine(这是default); break; ,num=2 时,输出: 这是第二个case,修改下面代码中的错误 改正后,当 num=2 时,输出什么?,预习检查,C# 中的循环结构有哪几种? 使用什么语句可以跳出循环?,本章任务,编写简单的 Hello ACCP.NET 控制台应用程序 获取字符串中的字符 打印 * 图案 计算竞赛平均分 编程模拟商场购物过程 实现一维数组的冒泡排序,本章目标,掌握 C# 中循环语句 掌握简单 C# 程序

3、的调试方法 掌握 C# 中的一维数组的使用方法 能够使用二重循环实现冒泡排序,C# 中的循环迭代,回顾:Java 中的循环语句有哪些?执行过程怎样?,foreach 循环结构,foreach循环一般用于遍历整个集合或数组,foreach (元素类型 变量名 in 集合或者数组名) / 语句 ,输入一个字符串,输出其中的每个字符,演示示例1:foreach,简单调试,示例1分析,static void Main(string args) Console.WriteLine(请输入一个字符串:); / 输入提示 / 从控制台读入字符串 string line = Console.ReadLine(

4、); / 循环输出字符串中的字符 foreach (char c in line) Console.WriteLine(c); Console.ReadLine(); ,示例1源代码,依次循环字符串中的每个字符,关键代码分析,VS调试技巧,断点(breakpoint):通知调试器应在某点上中断应用程序并暂停执行,调试常用快捷键: F5开始调试 Shift+F5停止调试 F9设置或删除断点 F10单步执行,监视(watch)窗口:计算变量和表达式的值,二重循环,某次程序大赛,3个班级各4名学员参赛,计算每个班参赛学员的平均分,共3个班级,循环3次计算每个班的平均分 每班4名学员,循环4次累加总分

5、,需要使用二重循环实现,for、while、do-while、foreach 语句可以相互嵌套,演示示例2:二重循环示例,跟踪调试,示例2分析,关键代码,/ 外层循环控制逐个计算每个班级的平均分 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; ave

6、rage = sum / 4; Console.WriteLine(第0个班的平均分为:1分,i+1,average); ,内层循环结束后,才执行外层循环的语句,示例2源代码,二重循环进阶,用 * 打印一个直角三角形图案,二重循环:外层控制行数,内层打印每行的 * 图形特点:每行的 * 个数与行数相等,演示示例3:用 * 打印直角三角形,示例3代码分析,关键代码,int rows = 5; / 打印的行数 int i, j; / 循环变量 / 外层循环控制打印的行数 for (i = 1; i = rows; i+) / 内层循环控制每行打印*的个数 for (j = 1; j = i; j+

7、) Console.Write(*); Console.Write(n); ,内层循环的结束条件与外层循环变量有关,示例3源代码,流程控制进阶,回顾:在循环结构中, continue 和 break怎样跳转?,for() continue; ,for() break; ,跳出循环结构,跳到下次循环,在二重循环中会怎样呢?,流程控制进阶continue,下面红色框中代码的作用是什么?,int count = 0; for (i = 0; i 3; i+) / 提示输入成绩 for (j = 0; j 4; j+) Console.Write(第0个学员的成绩:, j + 1); score =

8、int.Parse(Console.ReadLine(); sum = sum + score; if (score 85) continue; count+; / 计算平均分并输出 ,continue 跳出本次循环,继续下一次循环,演示示例4:使用断点调试观察程序执行过程,统计成绩在85分以上的学员人数,流程控制进阶break,5个专卖店促销,每个专卖店每人限购3件衣服,可以随时选择离开,离店时要结账,for(i=0;i5;i+) / 每次进一个专卖店 for(j=0;j3;j+) / 每个店限购3件 if(离开这家店) break; 选购一件衣服 结账 ,演示示例5:break 进阶,示例

9、5分析,关键代码回顾,示例5源代码,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

10、 跳出内层循环,choice = y,流程控制进阶,for() for() continue; ,for() for() break; ,跳出本层循环, 继续执行外层循环,跳出本次循环,继续下一次循环,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); Co

11、nsole.WriteLine();/ 换行 Console.ReadLine(); ,参考答案,C# 中的一维数组,回顾:为什么要使用数组?,如何声明一维数组?,在C#中声明数组:数据类型 数组名 不能将数组名放在数据类型和方括号之间!,一维数组初始化,如何设置大小及初始化?,/ 使用 new 设置大小 / 创建长度为5的整型数组 int array = new int5;,/ 创建的同时初始化 int arr = new int50,1,2,3,4; int arr = new int 0,1,2,3,4; / 省略长度 int arr = 0,1,2,3,4; / 省略new,5方括号中

12、的数字决定数组的长度,0,1,2,3,4大括号中的元素个数决定数组的长度,一维数组长度,获得数组的长度(元素的个数):,数组名.Length,常作为循环的条件,演示示例6:一维数组,/ 循环打印数组元素 int array = new int5 0, 1 ,2, 3, 4; / 声明并初始化一维数组 for (int i = 0; i array.Length;i+ ) / 输出数组中的所有元素 Console.WriteLine(arrayi); ,常见错误,数组初始值的数目与数组的长度不一样,/ 循环打印数组元素 int array = new int5 0, 1 ,2; / 声明并初始化

13、一维数组 for (int i = 0; i array.Length;i+ ) / 输出数组中的所有元素 Console.WriteLine(arrayi); ,初始值的个数必须与数组的长度一样!,代码错误,小结,string arr3; arr3 = new string3 I, like, C# ;,int arr1 = new int3;,int arr2 = new int31,2;,int arr1,new int31,2,0,正误判断:,int arr4 = new string3;,类型应一致,冒泡排序,小游戏,请 5 位同学上台,在老师的指导下, 按照冒泡排序的算法按身高从低

14、到高排序,冒泡排序,冒泡排序:,每次比较相邻两数 小的交换到前面 每轮结束后最大的数交换到最后,16,25,9,90,23,16,25,9,23,90,9,25,23,第一轮:比较了4次,第二轮:比较了3次,第三轮:比较了2次,第四轮:比较了1次,用二重循环实现冒泡排序,i = 0,i = 1,i = 2,i = 3,第一轮:比较了4次,第二轮:比较了3次,第三轮:比较了2次,第四轮:比较了1次,外层循环,如何用二重循环将5个数字排序?N = 5 5个数字存放在一维数组中 外层循环控制比较多少轮,循环变量 i 内层循环控制每轮比较多少次,循环变量 j,内层循环,循环4次:j 4,循环3次:j 3,循环2次:j 2,循环1次:j 1,i 4,i N-1,j ?,j 4-i,j N-1-i,用二重循环实现冒泡排序,代码框架:,演示示例7:将5个学员成绩排序,使用断点跟踪,for (i = 0; i N-1 ; i+) for (j = 0; j N-1-i ; j+) / 比较 j 和 j+1 位置的元素 / 如果前大后小就交换 ,冒泡排序速记口诀(升序): N 个数字来排队 两两相比小靠前 外层循环 N-1 内层循环 N-1-i,冒泡排序,关键代码分析:,for (i =

温馨提示

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

评论

0/150

提交评论