Administrator
发布于 2025-09-23 / 25 阅读
0
0

C#6.1 一维数组

本节内容

一、数组的由来

二、数组是什么

三、相关术语

四、数组的特点

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

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

七、数组的默认值

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

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

十、获取数组长度

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

一、数组的由来

在实际编程中,经常需要处理大量相同类型的数据。例如:存储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}
  • 数组是一种数据结构。

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

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

三、相关术语

      {'A','B','C',"D",'E'}
索引:    0  1    2   3   4数组中的每一个值,
  1. 数组元素:数组中存储的每一个值。

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

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

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

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

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

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

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

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

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

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

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

四、数组的特点

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

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

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

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

基本语法

数据类型[] 数组名;

具体语法:

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);
}



评论