零点起飞学C#之数组.pptx
《零点起飞学C#之数组.pptx》由会员分享,可在线阅读,更多相关《零点起飞学C#之数组.pptx(53页珍藏版)》请在三一办公上搜索。
1、第10章 数 组,数组是C#语言最常用的数据结构之一。在编程中,有时需要保存一组相同类型的数字。这时候使用数组,方便命名和调用。数组是一组类型相同的变量的集合,可以通过公共的名称来访问其中的变量。本章将给大家详细讲解使用数组进行编程的方法。,10.1 使 用 数 组,数组是一个有序的数据集合,通过数组统一访问或操作这些元素。数组中的每一个元素的数据类型都相同。元素的数据类型被称为元素类型,它可以为任何类型,甚至可以为数组。在内存中,数组占用一块连续的内存,元素按顺序存放在一起,数组中每一个单独的元素并没有自己的名字,但是可以通过其位置来进行访问或修改。下面我们来学习数组的一些基础知识。注意:在
2、C#语言中,数组的下标从0开始,即s0表示s数组的第一个元素。,10.1.1 数组的基准维度数,在直线、平面和空间中,称描述一个点所需要值的数量为“维度数”。数组也一样,当要描述数组中的一个元素时,如果只需要一个值(数组的下标),那么该数组的维度数为1;如果需要两个值,那么该数组的维度数为2;依次类推。根据数组的维度数不同,可以把数组分为以下3种类型。一维数组:维度数为1的数组。二维数组:维度数为2的数组。多维数组:维度数大于2的数组。,10.1.2 声明数组,同类、结构一样,如果需要某一个数组,则必须首先声明该数组。声明一维数组的语法如下所示。type arrayName;其中,type表示
3、数组元素的类型,如int、double、string、object等;arrayName表示数组的名称。【示例10-1】下面声明一个数组。它的元素类型为int,名称为arr。int arr;/声明一个int型的数组arr【示例10-2】下面声明一个数组。它的元素类型为string,名称为arr2。string arr2;/声明一个string型的数组arr2,10.1.3 实例化数组,数组需要分配相应的内存后才能正常存取数据。实例化数组就是为数组分配相应的内存。需要注意的是,声明一个数组,并不为该数组分配相应的内存。【示例10-3】下面实例化数组arr,并为该数组分配相应的内存。由于arr数组
4、的长度为10,因此该数组分配104字节的内存(该数组的元素类型为int,每一个int类型的值占4个字节)。arr=new int10;/实例化int型的数组arr,10.1.4 初始化数组,变量可以初始化,数组也可以在定义的同时为各数组元素赋初值。初始化数组就是初始化数组中每一个元素的值,即为数组中的每一个元素进行赋值。数组被实例化之后,每个元素都为其元素类型的默认值。一般情况下,只有初始化数组之后,该数组才具有实际运算的意义。注意:如果数组没有被初始化,那么该数组的每一个元素的值为其元素类型的默认值。如示例10-3中的arr数组的默认值为0。,初始化数组有多种方法,主要包括以下4种。1直接赋
5、值直接赋值是将一组值直接赋给数组,这组值被包括在大括号之内,每一个值被逗号分隔。如果直接赋值,不指定数组长度,系统会根据元素个数自动确定。,【示例10-4】下面将一组值“today,is,a,sunny,day”赋给s1数组。该数组初始化之后,它的长度为5,它的元素的值分别为today、is、a、sunny和day。string s1=today,is,a,sunny,day;/给string型的数组s1赋初值注意:如果使用上述方法初始化数组,那么该数组的长度由其值(如“today,is,a,sunny,day”)所包含单个值的数量决定。,2实例化赋值+指定长度实例化赋值+指定长度是给数组的每
6、个元素赋值,而且指定数组长度。如果赋值的个数超过了数组长度,那么编译器就会报错。假如数组长度为5,赋值个数为6,提示错误信息为:应输入长度为”5”的数组初始值,【示例10-5】下面将一组值“today,is,a,sunny,day”赋给s2数组。该初始化操作使用new操作符,并指定了数组的长度为5。该数组初始化之后,它的元素的值分别为today、is、a、sunny和day。string s2=new string5 today,is,a,sunny,day;/使用new初始化数组s2,并指定数组长度为5注意:如果使用上述方法初始化数组,那么值(如“today,is,a,sunny,day”)
7、所包含单个值的数量必须等于数组的长度。,3实例化赋值+省略长度实例化赋值+省略长度是给数组的每个元素赋值,而不指定数组长度。数组长度根据赋值的个数自动确定。,【示例10-6】下面将一组值“today,is,a,sunny,day”赋给s3数组。该初始化操作使用new操作符,但是省略数组的长度。该数组初始化之后,它的长度为5。它的元素的值分别为today、is、a、sunny和day。string s3=new stringtoday,is,a,sunny,day;/使用new初始化数组s3,省略数组的长度注意:如果使用上述方法初始化数组,那么该数组的长度由其值(如“today,is,a,sun
8、ny,day”)所包含单个值的数量决定。,4直接设置数组的每一个元素的值【示例10-7】下面创建一个名称为s4的数组,元素类型为string,然后使用for语句直接设置s4数组的每一个元素的值。string s4=new string5;/创建s4数组for(int i=0;i 5;i+)/使用for语句直接设置s4数组的每一个元素的值 s4i=i.ToString();学完四种初始化数组的方式,下面我们来看个例子。该例包含了这四种初始化数组的方法。【示例】,10.1.5 遍历数组,在编程中,给数组元素赋值或者打印输出数组元素的值等,都需要遍历数组。遍历数组是指依次访问数组中的每一个元素,并执
9、行预先设计的操作。遍历数组有两种方式:一是使用下标遍历,如for、while、dowhile等语句。二是不使用下标遍历,如foreach语句。1使用下标遍历数组使用下标遍历数组时,即直接通过下标来确定被访问的元素。这种方法是最常用的,也是最直接的方法。【示例10-8】下面使用for语句遍历str数组每一个元素,并设置每一个元素的值等于该元素的下标。,2不使用下标遍历数组有的时候,我们遍历数组时无法判断数组元素的个数,就需要使用foreach语句枚举数组中的每一个元素来实现遍历数组的功能。而且,使用foreach语句遍历数组也可以增加代码的通用性,便于处理各种长度的数组。【示例10-9】下面使用
10、foreach语句遍历str数组的每一个元素,并打印每一个元素的值。其中,s为临时变量,它的类型为str数组的元素类型。foreach语句将枚举str数组中的每一个元素,从而实现遍历str数组的功能。,10.2 数 组 的 类 型,前面我们介绍的示例中用的是一维数组,但数组不是只有一种。根据维度数和元素类型的不同,可将数组分为四类:一维数组、二维数组、多维数组和交错数组。本节给大家介绍各种数组的声明、实例化和初始化的方法。,10.2.1 一维数组,一维数组是指维度数为1的数组,它是一个相关变量的列表,在编程中很常见。一维数组是最简单的数组,也是最常用的数组。声明一维数组的语法如下所示。type
11、 arrayName;其中,type表示数组元素的类型,如int、double、string、object等;arrayName表示数组的名称。注意:10.1节示例中的所有数组都是一维数组。,【示例10-10】下面声明一个一维数组,它的元素类型为string,名称为arr1。string arr1;/声明string型的一维数组arr1分析:如果要使用arr1数组,则需要实例化该数组,即为arr1数组分配相应的内存。【示例10-11】下面实例化数组arr1,并为该数组分配10个string类型系统预定义大小的内存。string arr1=new string10;/实例化数组arr1arr1数
12、组实例化后,每个元素的值都为string类型的默认值(即空字符串)。如果要使得该数组具有实际运算意义,则还需要初始化该数组的每一个元素的值。,【示例10-12】使用for语句依次访问arr1数组中的每一个元素,并设置每一个元素的值等于它的下标组成的字符串。for(int i=0;i 10;i+)/使用for语句访问arr1数组的元素 arr1i=i.ToString();/对元素进行赋值学完一维数组的知识,我们来看个例子。【示例】下面程序中创建一个一维数组arr1,赋初值后使用foreach语句依次访问arr1数组中的每一个元素,并打印输出各数组元素。,10.2.2 二维数组,生活中,有很多事
13、物,仅仅用一维数组,将无法恰当地被表示。二维数组是指维度数为2的数组。声明二维数组的语法如下所示。type,arrayName;其中,type表示数组元素的类型,如int、double、string、object等;中括号()中间存在一个逗号(,)表示该数组为一个二维数组;arrayName表示数组的名称。,【示例10-13】下面声明一个二维数组,它的元素类型为string,名称为arr2。string,arr2;/声明一个二维数组arr2分析:如果要使用arr2数组,和一维数组一样,则也需要实例化该数组,即为arr2数组分配相应的内存。【示例10-14】下面实例化数组arr2,并为该数组分配
14、相应的内存。arr2数组的维度数分别为5和10,因此该数组分配大小为“510string类型系统预定义大小”的内存。string,arr2=new string5,10;/实例化数组arr2分析:arr2数组实例化后,每个元素的值都为string类型的默认值(即空字符串)。如果要使得该数组具有实际运算意义,则还需要初始化该数组的每一个元素的值。,【示例10-15】下面使用两个for语句依次访问arr2数组中的每一个元素,并设置每一个元素的值等于它的两个下标(arr2数组为二维数组,每一个元素所在的每一个维度都将存在一个下标值)组成的字符串。for(int i=0;i 10;i+)for(int
15、 j=0;j 50;j+)/使用for语句访问arr2数组的元素 arr2i,j=i.ToString()+j.ToString();/对元素进行赋值 学完二维数组的知识,我们来看个例子。【示例】下面程序中创建一个二维数组arr2,赋初值后使用双层for循环语句依次访问arr2数组中的每一个元素,并打印输出各数组元素。,10.2.3 多维数组,虽然一维数组和二维数组是编程中比较常用的数组,但有时也会用到多维数组。多维数组是指维度数大于2的数组,如三维数组、四维数组等。声明三维数组的语法如下所示。type,arrayName;其中,type表示数组元素的类型,如int、double、string
16、、object等;中括号()中间存在两个逗号(,)表示该数组为一个三维数组;arrayName表示数组的名称。,【示例10-16】下面声明一个三维数组,它的元素类型为string,名称为arr3。string,arr3;/声明一个三维数组arr3分析:如果要使用arr3数组,和一维数组一样,则也需要实例化该数组,即为arr3数组分配相应的内存。【示例10-17】下面实例化数组arr3,并为该数组分配相应的内存。arr3数组的维度数分别为5、10和50,因此该数组分配了大小为“51050string类型系统预定义大小”的内存。string,arr3=new string5,10,50;/实例化三
17、维数组arr3分析:arr3数组实例化后,每个元素的值都为string类型的默认值(即空字符串)。如果要使得该数组具有实际运算意义,则还需要初始化该数组的每一个元素的值。,【示例10-18】下面使用3个for语句依次访问arr3数组中的每一个元素,并设置每一个元素的值等于它的3个下标(arr3数组为三维数组,每一个元素所在的每一个维度都将存在一个下标值)组成的字符串。for(int i=0;i 5;i+)for(int j=0;j 10;j+)/使用for语句访问arr3数组的元素 for(int k=0;k 50;k+)/对元素进行赋值 arr3i,j,k=i.ToString()+j.To
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 零点 起飞 C# 数组
链接地址:https://www.31ppt.com/p-6613779.html