第三章数组枚举与结构.ppt

上传人:本田雅阁 文档编号:2258093 上传时间:2019-03-12 格式:PPT 页数:27 大小:507.51KB
返回 下载 相关 举报
第三章数组枚举与结构.ppt_第1页
第1页 / 共27页
第三章数组枚举与结构.ppt_第2页
第2页 / 共27页
第三章数组枚举与结构.ppt_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第三章数组枚举与结构.ppt》由会员分享,可在线阅读,更多相关《第三章数组枚举与结构.ppt(27页珍藏版)》请在三一文库上搜索。

1、1,数组、结构和枚举,第三章,2,数 组,数组是一组具有相同类型和名称的变量的集合,组成数组的这些变量称为数组元素,可以通过数组名数组下标(或者叫索引值)来访问数组元素。 对于每一维中,数组中数组元素的个数叫这个维的数组长度。无论是一维数组还是多维数组,每个维的下标都是从0开始,结束于这个维的数组长度减1。,3,一维数组的声明,声明一维数组的格式如下: 数组类型 数组名; 例:int a; string arr; char carr;,4,一维数组的初始化,1静态初始化 数组的静态初始化必须与数组定义结合在一起,语法格式如下: 数组类型 数组名元素1,元素2,; 例: int IntArr=-

2、45,9,29,32,46; char StringArr=a,b, c, d;,5,一维数组的初始化,2动态初始化 当数组元素个数较多且不能穷举时,可以使用动态初始化。动态初始化需要借助new运算符,为数组元素分配内存空间,并为数组元素赋初值,数值类型初始化为0,布尔类型初始化为false,字符串类型初始化为null。动态初始化数组的格式如下: 数组名=new 数据类型数组长度; 例: a=new int 5;,6,一维数组的初始化,2动态初始化 也可以将定义和动态初始化写在一起: 数组类型 数组名=new 数据类型数组长度; 例: double f1=new double5; string

3、 arr=new string3 “as”,”vb”,”23”; /也可动态初始化并赋初值,7,一维数组的使用,定义并初始化数组后就可以访问数组元素了,访问数组元素是通过数组名和下标来实现的,数组元素的下标可以是整形常量、变量,也可以是整形类型的表达式。 例:str0, str2, stri, str2*i-1 举例: 见课本L31;,8,二维数组的声明,声明二维数组的格式如下: 数组类型, 数组名;/逗号隔开每一维,其它同一维 例:int, a; string, arr;,9,二维数组的初始化,1静态初始化 同一维数组一样,二维数组的静态初始化也必须与数组定义结合在一起,语法格式如下: 数组

4、类型, 数组名,; 例: int , score=76,67,88,89;,10,二维数组的初始化,2动态初始化 动态初始化数组的格式如下: 数组名=new 数据类型数组长度1,数组长度2; 例: a=new int 2,5;,11,二维数组的初始化,2动态初始化 也可以将定义和动态初始化写在一起: 数组类型 数组名=new 数据类型数组长度; 例: double, d2 = new double2, 3; double, d3 = new double2, 2 1, 2 , 2, 3 ; /动态初始化并赋初值,12,二维数组的使用,定义并初始化数组后就可以访问数组元素了,访问数组元素是通过数

5、组名和下标来实现的,数组元素的下标可以是整形常量、变量,也可以是整形类型的表达式。 例:str1,2, str2,i, str2*i-1,1 举例:运用二维数组打印杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ,13,数组与Array类,Array类的Length属性 获取数组中元素的个数,格式如下: 数组名. Length Array类的Sort()方法 对一维数组中的元素进行排序,格式如下: Array.Sort(数组名); Array类的BinarySearch()方法 使用二进制算法,在已排序的一维数组中查找,找到给定的值后返回元素的下标,否则返回负数,格式如

6、下: Array.BinarySearch(数组名,待查找值);,14,枚 举,枚举类型是用户自定义的数据类型,是一种允许用符号代表数据的值类型。C#中,枚举是从System.Enum类继承而来的。 使用枚举类型,就可以将一年的四季分别用符号Spring、Summer、Autumn和Winter来表示,将一个星期的7天分别用符号Monday、Tuesday、Wednesday、Thursday、Friday、Saturday和Sunday来表示,有助于用户更好地阅读和理解程序。,15,枚举的声明,声明枚举类型必须使用Enum关键字,语法格式如下: enum 枚举名 枚举成员名称1,枚举成员名称

7、2,;,说明: 声明枚举类型时,必须带上enum关键字。 枚举名必须是C#中合法的标识符。 枚举类型中定义的所有枚举值都默认为整型。 由一对花括号“”和“”括起来的部分是枚举成员表,枚举成员通常用用户易于理解的标识符字符串表示,它们之间用逗号隔开。 与定义结构类型一样在花括号“”后,可以选择带或不带“;”符号。,16,枚举举例,下面是一个定义枚举类型的例子: enum WeekDay Sun, Mon, Tue, Wed, Thu, Fri, Sat; 上面的语句中定义了一个名称为WeekDay的枚举类型,它包含Sun、 Mon、 Tue、 Wed、 Thu、 Fri、 Sat这7个枚举成员。

8、有了上述定义,WeekDay本身就成了一个类型说明符,此后就可以像常量那样使用这些符号。两个枚举成员名不能完全相同。,17,枚举成员的赋值,在定义的枚举类型中,每一个枚举成员都有一个相对应的常量值,如: enum WeekDay Sun, Mon, Tue, Wed, Thu, Fri, Sat; 中,其枚举成员Sun、Mon、Tue、Wed、Thu、Fri和Sat在执行程序时,分别被赋予整数值0、1、2、3、4、5和6。对于枚举成员对应的常量值,默认情况下C#规定第1个枚举成员的值取0,它后面的每一个枚举成员的值按加上1递增。,18,为某一枚举成员赋值,如果在定义枚举类型时,直接为某个枚举成

9、员赋值,则其他枚举成员依次取值,如: enum color yellow, brown, blue, black=6, purple; 如果为某一个(不是按第1个)枚举成员赋值,则从第1个枚举成员到被赋值的枚举成员前的那个枚举成员是按默认方式赋值的,即第1个枚举成员yellow的值为0,后面的枚举成员则依次往上加1。被赋值的枚举成员取赋给它的值,即black=6,它后面的枚举成员则在所赋值基础上依次加1。,19,为多个枚举成员赋值,在定义枚举类型时,还可以为所有枚举成员赋值,此时可以不遵从按次序取值的原则。如: enum color yellow, brown=3, blue, black=-

10、3, purple; 如果为某几个枚举成员赋值,则被赋值的枚举成员取所赋给它的值,其后的枚举成员的值依次加1,在第1个被赋值的枚举成员之前的枚举成员,按默认方式赋值。,20,例:输出枚举成员对应的整数值。 using System; enum color yellow, brown=3, blue, black=-3, purple class EnumDemo static void Main( ) Console.WriteLine(“yellow=0”, color.yellow); Console.WriteLine(“yellow=0”, (int)color.yellow); Co

11、nsole.WriteLine(“brown=0”, (int)color.brown); Console.WriteLine(“blue=0”, (int)color.blue); Console.WriteLine(“black=0”, (int)color.black); Console.WriteLine(“purple=0”, (int)color.purple); ,21,举例:,using System; enum WeekDay 星期日, 星期一, 星期二, 星期三, 星期四, 星期五,星期六 class Test static void Main() WeekDay a; f

12、or(int i=0;i7;i+) a=(WeekDay)i; Console.WriteLine(“0t1”, (int)a, a); ,22,结 构,在C#中可以使用数组来存储许多类型和意义相同的相关信息,但是如果有些数据信息由若干不同数据类型和不同意义的数据所组成(如一个学生的个人记录可能包括:学号、姓名、性别、年龄、籍贯、家庭住址、联系电话等),这些信息的类型不完全一样,就不能通过定义一个数组来存储一个学生的所有信息了,这时,就可以用C#提供的结构类型有组织地把这些不同类型的数据信息存放到一起。 结构类型是指把各种不同类型数据信息组合在一起形成的组合类型;结构是用户自定义的数据类型;使

13、用结构类型可以方便地存储多条不同类型的数据。,23,结构的声明,结构类型必须先声明后使用,声明结构类型时要使用struct关键字,声明结构类型的语法格式如下: struct 结构名称 /结构成员定义; 说明: (1) struct关键字表示声明的是一种结构类型。 (2)标识符必须是C#合法的标识符,它用来在程序中唯一确定所定义的结构。 (3)由一对花括号括起来的部分称为结构体,它定义了结构中所包含的各种成员。,24,例:定义一个学生结构类型Student,包括:学号、姓名、年龄和所在系等信息。 struct Student /定义名为Student的结构 public long no; pub

14、lic string name; public int age; public string university; /定义结构的方法成员 public void structmethod( ) /方法可执行代码 在上面定义的结构语句中,在结构体中定义了结构的数据成员及方法成员。,25,结构成员的访问,结构成员可分为两类,一是实例成员,一是静态成员。若成员名前有static关键字,则该成员为静态成员,否则为实例成员。静态成员通过结构名来访问,而实例成员的访问是通过创建结构类型的变量来访问的。 创建结构类型的变量的一般形式如下: 结构名 结构变量名; 说明:结构名为已声明的结构类型的名称,结构变量名必须是C#合法的标识符,它用来表示结构类型的变量。,26,结构应用示例,虽然结构是值类型,但在语法上常常可以把它当做类来处理,可以认为是一个缩小的类,但是结构和类还是有区别的,请同学们思考,结构与类的区别?,27,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1