当前位置: 首页 > >

第2章 基本语法(二)_图文

发布时间:

第2章 基本语法(二) 第2章 基本语法(二) 2.1 音像店管理 2.2 竞赛分数统计 2.3 总结 2.4 上机部分 第2章 基本语法(二) 2.1 音像店管理 第2章 基本语法(二) 如果我们有一个音像影碟的出租店,那么该如何管理呢?面对成千上万的各种影碟如 何快速找到用户所需要的那一个?此时,我们需要有一个完善的管理体系、良好的管理制 度以及高效的管理工具。本章要讨论的就是这个高效的管理工具。 2.1.1 问题 我们仍然借助程序来制作这个管理工具,其运行界面如图2-1所示。 很显然这是一个相对复杂的程序,我们需要完成以下功能: (1) 在程序中保存我们所拥有的电影信息,至少是电影的名称。 (2) 根据用户的输入查找相应的电影编号。 (3) 如果用户输入的电影没有找到,就继续输入查找。 第2章 基本语法(二) 2.1.2 需求分析 1.数组 要完成音像店管理程序,第一个要面对的问题就是如何保存成千上万部电影的信息, 至少是电影的名称。稍加分析我们就会发现,这些电影的名称需要用字符串类型的变量来 保存,而且这些变量的数量还不少,很显然我们不可能在程序中定义几百个字符串类型的 变量,所以我们需要用数组来完成这个任务。 数组就是一组具有相同类型变量的集合,数组成员具有相同的名称,区别它们的方式 是下标,这点很吸引人,因为不用考虑为每一个变量起名字了。C#中定义变量的语法如下: 数据类型[] 数组名称; 很奇怪,为什么C#中的数组没有指定长度?原因在于C#中的数组需要初始化,其长度 是在初始化的时候指定的,初始化的方式是使用new关键字: int[] arr1 = new int[5]; int[] arr2 = new int[5]{1,2,3,4,5}; int[] arr3 = new int[]{1,2,3,4,5}; int[] arr4 = {1,2,3,4,5}; 第2章 基本语法(二) 以上代码都是C#中数组的初始化方式,比较C语言中的数组我们会发现明显的不同。 当然也存在相同的地方,通过下标操作就是其中一个,C#数组成员都有一个从零开始的下 标,所以使用起来很方便: int i = arr1[0]; arr2[1] = 100; 在使用数组的时候也要特别小心,因为经常会出现一些错误: int arr1[] = new int[5]; int[] arr1 = new int[3]{1,2}; int[] arr2 = new string[5]; 第一行代码中数组名称放在了类型和中括号中间;第二行代码中数组的长度和赋值的 数量不相等;第三行代码中数据类型不一致。这些都是我们在使用数组的过程中经常会碰 到的问题。 现在我们就可以解决电影名称保存的问题了,我们只需要一个字符串类型的数组就够 了: string[] films = new string[5]; films[0] = 超级战舰; films[1] = 变形金刚3; 第2章 基本语法(二) films[2] = 阿甘正传; films[3] = 肖申克的救赎; films[4] = 失恋33天; 在上面的代码中我们首先声明了一个长度为5的字符串类型的数组,然后通过5条赋值 语句分别为数组的5个成员进行赋值,这样我们就在程序中保存了5部电影的名称。 2.循环 接下来我们就要面对第二个问题了:如何在数组中查找相应电影的编号。一个很明显 的思路是将数组中的每一个成员的值和用户所要查找的值依次进行对比,相同的就是用户 所要找的那部电影。这里有一个对比的过程,因此肯定要用到第1章中学*到的分支判断。 那么,依次进行比较很自然就要用到循环了。 在C语言中,我们学*过三种循环结构:do…while结构、while结构和for结构,在C#语 言中有四种循环结构,表2-1中列出了C语言和C#语言循环结构的对比。 第2章 基本语法(二) 在表2-1的前三种循环结构中,我们会发现它们是有一些共同点的,例如它们都有一个 显式的条件判断以决定是否开始或者继续循环,它们都需要一个循环控制变量来控制循环 条件成立与否。而在foreach循环结构中这些都不存在了。事实上foreach循环结构是一个完 整的遍历过程,它主要用于遍历集合或数组,其语法结构如下: foreach(元素类型 变量名 in 集合或数组) { 语句 } foreach结构的工作过程是这样的:将数据或集合中的元素依次提取出来,放入到“变 量名”中,在循环体语句中就可以通过对这个变量的操作来间接操作数组或集合成员。因 此就要求“变量名”的数据类型,也就是“元素类型”,要和集合或数组的类型相同或者 能够进行自动转换。 我们可以通过下面的例子来学*foreach结构: static void Main() { string str = null; 第2章 基本语法(二) Console.Write(请输入一个字符串:); str = Console.ReadLine(); Console.WriteLine(转换结果:); foreach (char c in str) { Console.WriteLine(c); } Console.ReadLine(); } 上面例子的作用是将用户输入的字符串转换成竖向输出,在这个例子中我们首先声明 了一个字符串类型的变量用于接收用户的输入,然后通过foreach结构进行输出。我们知道 字符串实际上可以看做一个字符数组,因此在上面的循环结构中“数据或集合”自然就是 我们声明的那个字符串变量了,而“元素类型”自然就是字符类型的了。 第2章 基本语法(二) 接下来我们就来使用foreach循环结构实现电影查找功能: foreach (string s in films) { if (s == name) Console.WriteLine(找到了!); } Console.WriteLine(没找到!); 在上面的代码中,films就是



友情链接: