C#语言基础: 数组及数组的运用

空扰寡人 提交于 2019-12-27 14:46:56

 什么是数组?那数组又是怎么运用的呢?接下来,我来揭开谜底。

  我们把能够存放任意多个同类型的数据的组合叫做数组。也可以说数组是由多个数组项组成,每个数组项的类型相同,并且每个数组项对应1个编号,这些编号叫做数组的索引,也称为下标。数组的数组项的编号都是从0开始,依次为数组项编号。 

  数组声明的表达式为:数据类型[ ] 变量名   ;数组赋值表达式为:变量名=new  数据类型[ 长度]  [长度]是int类型 ,赋值的数据类型必须与声明的数据类型一致。

  注意:一个数组创建后,它每个数组项的值,为数组项类型的默认值:数字类型,默认值为0;bool类型,默认值为false;char类型,默认值为转义符(\0.表示空字符);string类型,默认值为null,表示“空”。

  数组的读取:变量名[索引],从指定数组中,通过编号取出某一个数组项的值,返回类型与数组项类型相同。

  比如:int[ ] numbers=new int[5];   意思就是,定义了一个number变量,它是一个数组,可以存放5个int类型的数据。

  数组的修改:表达式为 变量名[索引]=值;

  代码示例:

int [ ] number=new int(5);
numbers[0]=3;
numbers[5]=-2;
numbers[3]=numbers[0]*2+numbers[1];
console.writeline(numbers[3]);
运行结果为 4

注:如果索引超出数组长度,则为索引越界,货、或下标越界。

  读取数组的长度:变量名.Length  返回类型为int;

代码示例:
int [ ] numbers=new int[5];
numbers[0]=3;
numbers[5]=-2;
numbers[3]=numbers[0]*2+numbers[1];
console.writeline(numbers[3]);
console.writeline(numbers.Length);
运行结果为
4
5

除了以上方式,我们还可以用另外一种方式来编写代码,并且代码量也会减少,那就是数组的初始化器。

  数组的初始化器表达式为:变量名=new 数据类型[长度]{元素1,元素2,元素3……元素n}.

  数组有一个特性,那就是数组的定长性。表示为一个数组在常见之后,它的长度固定不变。

  比如说:

代码示例:
int[] nums=new int(5);
nums=new int[6];
定义了一个数组长度,定义为5;又重新建立了一个长度为6的数组,丢掉了原来的数组,长度并没有发生变化。

  我们在写代码的时候,我们可能会有重复的行为,重复的动作,我们为了减少代码的编写量,也减少代码的错误,我们可以使用数组的遍历来达到同样的效果。 

案例:有一个数组,变量名为arrays,请输出该数组每一项的值
重复的行为:输出一个数组项;

  数组的交换排序:1、冒泡排序,有两种思路:将最大的数沉到底部,将最小的数冒到顶部:

for (int i = nums.Length - 1; i > 0; i--)
{
//在 0-i 范围内,将该范围内最大的数字沉到i
for (int j = 0; j < i; j++)
{
if (nums[j] > nums[j+1])
{
//交换
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}

for(int i=0;i<=arrays.Length-1;i++)

{
Console.WriteLine(arrays[i]);
}

说明:要实现数字的遍历,可以使用循环
循环变量从0开始,依次取到数组的最大下标(数组的长度-1)
在循环体中,使用循环变量作为下标,即可取出数组每一项的值。

2、选择排序:首先找到 i - (nums.Length-1) 范围内的最小数所在的下标,假设找到的下标保存到变量index中,然后将nums[i]和nums[index]的值交换

for (int i = 0; i < nums.Length - 1; i++)
{
//在 i-(nums.Length-1) 范围内,将该范围内最小的数字提到i   ;//1. 首先找到 i - (nums.Length-1) 范围内的最小数所在的下标
int index = i; //先假设最小数的下标是i
for (int j = i + 1; j < nums.Length; j++)
{
if (nums[j] < nums[index])
{
//发现了更小的数
index = j;//记录下标
}
}
//2. 然后将nums[i]和nums[index]的值交换
int temp = nums[i];
nums[i] = nums[index];
nums[index] = temp;
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!