




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,数组、结构和枚举,第三章,2,数 组,数组是一组具有相同类型和名称的变量的集合,组成数组的这些变量称为数组元素,可以通过数组名数组下标(或者叫索引值)来访问数组元素。 对于每一维中,数组中数组元素的个数叫这个维的数组长度。无论是一维数组还是多维数组,每个维的下标都是从0开始,结束于这个维的数组长度减1。,3,一维数组的声明,声明一维数组的格式如下: 数组类型 数组名; 例:int a; string arr; char carr;,4,一维数组的初始化,1静态初始化 数组的静态初始化必须与数组定义结合在一起,语法格式如下: 数组类型 数组名元素1,元素2,; 例: int IntArr=-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 arr=new string3 “as”,”vb”,”23”; /也可动态初始化并赋初值,7,一维数组的使用,定义并初始化数组后就可以访问数组元素了,访问数组元素是通过数组名和下标来实现的,数组元素的下标可以是整形常量、变量,也可以是整形类型的表达式。 例:str0, str2, stri, str2*i-1 举例: 见课本L31;,8,二维数组的声明,声明二维数组的格式如下: 数组类型, 数组名;/逗号隔开每一维,其它同一维 例:int, a; string, arr;,9,二维数组的初始化,1静态初始化 同一维数组一样,二维数组的静态初始化也必须与数组定义结合在一起,语法格式如下: 数组类型, 数组名,; 例: 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,二维数组的使用,定义并初始化数组后就可以访问数组元素了,访问数组元素是通过数组名和下标来实现的,数组元素的下标可以是整形常量、变量,也可以是整形类型的表达式。 例: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()方法 使用二进制算法,在已排序的一维数组中查找,找到给定的值后返回元素的下标,否则返回负数,格式如下: Array.BinarySearch(数组名,待查找值);,14,枚 举,枚举类型是用户自定义的数据类型,是一种允许用符号代表数据的值类型。C#中,枚举是从System.Enum类继承而来的。 使用枚举类型,就可以将一年的四季分别用符号Spring、Summer、Autumn和Winter来表示,将一个星期的7天分别用符号Monday、Tuesday、Wednesday、Thursday、Friday、Saturday和Sunday来表示,有助于用户更好地阅读和理解程序。,15,枚举的声明,声明枚举类型必须使用Enum关键字,语法格式如下: enum 枚举名 枚举成员名称1,枚举成员名称2,;,说明: 声明枚举类型时,必须带上enum关键字。 枚举名必须是C#中合法的标识符。 枚举类型中定义的所有枚举值都默认为整型。 由一对花括号“”和“”括起来的部分是枚举成员表,枚举成员通常用用户易于理解的标识符字符串表示,它们之间用逗号隔开。 与定义结构类型一样在花括号“”后,可以选择带或不带“;”符号。,16,枚举举例,下面是一个定义枚举类型的例子: enum WeekDay Sun, Mon, Tue, Wed, Thu, Fri, Sat; 上面的语句中定义了一个名称为WeekDay的枚举类型,它包含Sun、 Mon、 Tue、 Wed、 Thu、 Fri、 Sat这7个枚举成员。有了上述定义,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,为某一枚举成员赋值,如果在定义枚举类型时,直接为某个枚举成员赋值,则其他枚举成员依次取值,如: 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=-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); Console.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; for(int i=0;i7;i+) a=(WeekDay)i; Console.WriteLine(“0t1”, (int)a, a); ,22,结 构,在C#中可以使用数组来存储许多类型和意义相同的相关信息,但是如果有些数据信息由若干不同数据类型和不同意义的数据所组成(如一个学生的个人记录可能包括:学号、姓名、性别、年龄、籍贯、家庭住址、联系电话等),这些信息的类型不完全一样,就不能通过定义一个数组来存储一个学生的所有信息了,这时,就可以用C#提供的结构类型有组织地把这些不同类型的数据信息存放到一起。 结构类型是指把各种不同类型数据信息组合在一起形成的组合类型;结构是用户自定义的数据类型;使用结构类型可以方便地存储多条不同类型的数据。,23,结构的声明,结构类型必须先声明后使用,声明结构类型时要使用struct关键字,声明结构类型的语法格式如下: struct 结构名称 /结构成员定义; 说明: (1) struct关键字表示声明的是一种结构类型。 (2)标识符必须是C#合法的标识符,它用来在程序中唯一确定所定义的结构。 (3)由一对花括号括起来的部分称为结构体,它定义了结构中所包含的各种成员。,24,例:定义一个学生结构类型Student,包括:学号、姓名、年龄和所在系等信息。 struct Student /定义名为Student的结构 public long no; public string name; public int age; public string university; /定义结构的方法成员 public void structmethod( ) /方法可执行代码 在上面定义的结构语句中,在结构体中定义了结构的数据成员及方法成员。,25,结构成员的访问,结构成员可分为两类,一是实例成员,一是静态成员。若成员名前有static关键字,则该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高压变压器生产制造企业信用评级与技术服务合作协议
- 2025年创新生物制剂专利独占许可及全球技术转移合作协议
- 2025年绿色投资资产担保服务与管理合同
- 2025年茶叶出口贸易与加工一体化服务合同
- 2025年度美术馆展览场地租赁保证金及艺术策展合作协议
- 培训茶叶基本知识课件
- 2025年度绿色草种种植基地建设项目技术指导与咨询合同
- 2025年度地铁车辆及配套设施采购合作协议
- 水彩色彩课件
- 2025年度医疗器械进口代理与临床试验全方位外包服务协议
- 社区2025年开展的党委会议记录范文
- 十八项医疗核心制度考核试题及答案
- 2025年放射工作人员辐射安全与防护考核试题(附答案)
- 2025年职测e类试题及答案
- 消防车辆安全行驶课件
- 偏瘫患者穿衣健康宣教
- 酒店预算培训课件
- 儿科血小板减少的护理查房
- 林下生态养鸡技术课件
- 高中语文课程标准测试题答案
- 孕期健康方式课件
评论
0/150
提交评论