Skip to main content

任务一 一维数组

一、数组的由来

在实际编程中,经常需要处理大量相同类型的数据。例如:存储100个学生的成绩。如果为每个数据都单独声明一个变量,代码会变得冗长且难以维护。无法进行循环处理。

int score1 = 90;
int score2 = 85;
int score3 = 78;
// ... 需要声明100个变量

为了解决上述问题,数组应运而生。数组允许我们用单个变量名存储多个相同类型的值。

二、数组是什么

数组的样子:

{1,2,3,4,5}
{80.5F,79.5F,65.5F,80.5F}
{100,200,300,400,500}
{'A','B','C',"D",'E'}
{true,false,false,true,true}

数组是一种数据结构。

数组是用花括号包裹的一组同类型的值。

数组是一组同类型数据的有序集合。

三、相关术语

E

索引: 0 1 2 3 4数组中的每一个值, 数组元素:数组中存储的每一个值。

索引:也叫“下标”,用于访问数组元素的整数值。

数组长度:数组中包含的元素个数。

声明数组:指定数组变量名称和类型的过程。

数组初始化:为数组分配内存并首次赋值的过程。

数组实例化:使用new关键字创建数组对象的过程。

元素访问:通过索引获取数组元素值的操作。

元素赋值:通过索引修改数组元素值的操作。

遍历数组:按顺序访问数组中每个元素的过程。

索引越界:使用不在有效范围内的索引访问数组。

一维数组:只有一个维度的简单数组。

多为数组:具有多个维度的数组。

四、数组的特点

类型统一:所有元素必须是相同的数据类型

长度固定:一旦创建,大小不能改变

索引访问:可以通过索引直接访问任意元素

五、声明数组的语法(一维数组)

基本语法

数据类型[] 数组名; 具体语法:

int[] 数组名; // 声明整型数组
string[] 数组名; // 声明字符串数组
double[] 数组名; // 声明双精度浮点数数组
bool[] 数组名; // 声明布尔值数组

声明时的注意事项

声明数组时只是定义了引用变量,并没有实际创建数组实体对象

数组变量默认值为null,需要初始化后才能使用

int[] array1;

六、初始化数组的语法(一维数组)

语法1:默认值法(先声明后初始化)

数据类型[] 数组名; 数组名 = new 数据类型[数组长度]; 示例

int[] numbers;
numbers = new int[5]; // 创建包含5个整数的数组,默认值都是0

// 先声明大小,后赋值
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;

语法2:自定义值法(声明同时初始化)

数据类型[] 数组名= new 数据类型[数组长度]{值1,值2,...值N};

示例

// 方法2:直接初始化元素值
int[] numbers = new int[] {1, 2, 3, 4, 5};

语法3:直接量法(声明同时初始化)

数据类型[] 数组名= {值1,值2,...值N};

示例(最常用)

int[] numbers = {1, 2, 3, 4, 5};

// 字符串数组
string[] fruits = {"苹果", "香蕉", "橙子"};

// 双精度数组
double[] temperatures = {25.5, 26.0, 24.8};

// 布尔数组
bool[] results = {true, false, true};

// 字符数组
char[] letters = {'A', 'B', 'C'};

七、数组的默认值

当创建数组但不显式赋值时,元素会被设置为默认值:

数值类型:0

bool类型:false

引用类型:null

char类型:'\0'(空字符)

八、访问数组元素的语法(一维数组)

语法:通过索引访问元素

数组名[索引]; 示例

int[] scores = {90, 85, 78, 92, 88};

// 访问单个元素
int firstScore = scores[0]; // 90
int thirdScore = scores[2]; // 78

// 在表达式中使用
int total = scores[0] + scores[1] + scores[2];
Console.WriteLine("第一个分数: " + scores[0]);

九、遍历数组的方法(一维数组)

方法1:for循环

//示例数组
int[] numbers = {10, 20, 30, 40, 50};

for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine($"索引 {i} 的值: {numbers[i]}");
}

方法2:foreach循环(只读访问)

foreach (int number in numbers)
{
Console.WriteLine($"值: {number}");
}

方法3:while循环

int index = 0;
while (index < numbers.Length)
{
Console.WriteLine(numbers[index]);
index++;
}

十、获取数组长度

语法

数组名.Length; 示例

int[] numbers = {1, 2, 3, 4, 5};
int length = numbers.Length; // 获取数组长度:5

// Length属性的应用
for (int i = 0; i < numbers.Length; i++)
{
// 安全访问,避免越界
}

十一、修改数组元素的语法

场景1:直接赋值修改

int[] scores = {90, 85, 78, 92, 88};

// 修改单个元素
scores[0] = 95; // 将第一个元素改为95
scores[2] = 80; // 将第三个元素改为80

// 修改后数组变为:{95, 85, 80, 92, 88}
场景2: 批量修改元素

int[] numbers = new int[5];

// 通过循环批量赋值
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = (i + 1) * 10; // 10, 20, 30, 40, 50
}

// 基于条件修改
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] > 30)
{
numbers[i] = 0; // 大于30的元素都设为0
}
}
场景3: 用户输入修改数组

int[] numbers = new int[3];
​
// 从用户输入获取值
for (int i = 0; i < numbers.Length; i++)
{
Console.Write($"请输入第 {i + 1} 个数字: ");
numbers[i] = int.Parse(Console.ReadLine());
}
​
// 显示修改后的结果
Console.WriteLine("修改后的数组:");
foreach (int num in numbers)
{
Console.WriteLine(num);
}

数组是什么​

定义:数组是一组相同类型的数据的有序集合。

特点:

  1. 一组值,不是一个值
  2. 相同数据类型:字符串数组、整数数组、小数数组
  3. 数据的排列是有序的

数组的来历​

示例:存储 33 名同学的名字

string student1 = "张三";
string student2 = "李四";
string student3 = "张五";
....

创建数组的语法​

示例:使用数组存储 33 名同学姓名

// 第一步:创建字符串数组
string[] students = {"张三","李四","王五","赵四"};

定义数组的语法:

数据类型[] 数组名 = {值1,值2,值3,...值N};

注意:

  • [] :表示定义的是一组值
  • :包裹一组值
  • 逗号:分割多个值,最后一个元素后面不要写逗号

访问数组元素​

语法

数组名[索引]

索引:数组中的每一个元素都有一个固定的编号:

  • 0:第一个元素
  • 1:第二元素
  • 2:第三个元素
  • 以此类推。。。

查询数组的长度​

语法

数组名.Length; // Length 属性:查询数组长度

修改数组元素的语法​

数组名[索引] = 新值;

遍历数组​

定义:逐个访问或修改每一个数组元素。

语法 A: for 循环

课堂案例​

// 第一步:创建字符串数组
string[] arr = {"张三","李四","王五","赵四"};
// 第二步:访问数组元素
Console.WriteLine(arr[0]);
// 第三步:查询数组的长度
Console.WriteLine(arr.Length);
// 第四步:输出数组的最后一个元素
Console.WriteLine(arr[arr.Length - 1]);
// 第五步:把"李四"修改为"李小龙"
arr[1] = "李小龙";
Console.WriteLine(arr[1]);
// 第六步:遍历数组
for(int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}

数组类型的分类​

  • int[] : 用于声明整数数组 {1,2,3}
  • string[] : 用于声明字符串数组{"苹果","香蕉","梨"}
  • Double[]: 用于声明小数数组{85.5,90.5,66.5}
  • Char[]: 用于声明字符数组{'A','B','C'}
  • bool[]:用于声明布尔数组{true,false,true}

一、创建空数组​

语法: 使用 new 关键字创建

int[] arr = new int[3];

注意:

  1. 创建数组时,必须指定数组长度!
  2. 数组长度一旦确定不可修改!

二、遍历​

遍历:逐个访问。

访问:读操作 + 写操作

方法:

  • for 循环遍历: 可读可写
  • foreach 只读遍历:只能读不能写

语法: 使用关键字 foreach 发起循环

foreach(数据类型 变量名 in 数组名)
{
// 在这里访问数组元素
}

说明:

  1. 变量名: 指向数组里的每个元素
  2. foeach 循环是没有索引的循环(不能控制索引)

示例

string[] fruits = {"苹果","香蕉","鸭梨"};
foreach(string fruit in fruits)
{
Console.WriteLine($"我爱吃{fruit}");
}