C#数组--(一维数组,二维数组的声明,使用及遍历)

时间:2023-03-09 03:27:34
C#数组--(一维数组,二维数组的声明,使用及遍历)

数组:是具有相同数据类型的一组数据的集合。数组的每一个的变量称为数组的元素,数组能够容纳元素的数称为数组的长度。

一维数组:以线性方式存储固定数目的数组元素,它只需要1个索引值即可标识任意1个数组元素

1.格式:数组类型 [ ] 数组名称;

[  ] 指定数组的秩(维度),秩指定数组的大小。

2.数据类型可以为任意数据类型

3.数据访问之前必须初始化

4.初始化方式有两种:

(1)new关键词;(2)字面值逗号相隔指定。

For example

      //创建并初始化一维数组
int[] day = new int[] { , , , , , , , , , , , };
      int[] score = new int[] { , , ,  };

遍历元素:数组中遍历元素,即对数组中所有元素都按次序访问且仅一次

1.for循环,foreach循环

2.数组索引从0开始,所以访问数组的最后一个人元素应该为n-1

3.遍历数组时避免越界

4.一维数组遍历时应该尽量使用foreach语句,因为foreach会自动检查数组的索引,使其不会出现越界值。

For example

  //创建并初始化一维数组
int[] day = new int[] { , , , , , , , , , , , };
for (int i = ; i < ; i++) //利用循环将信息输出
{
Console.WriteLine((i + ) + "月有" + day[i] + "天"); //输出的信息
}
Console.ReadLine();
            int[] score = new int[] { , , ,  };
Console.WriteLine("小明的各科成绩如下:");
for (int i = ; i < ; i++)//利用循环将信息输出
{
Console.Write(" " + score[i] + " ");//输出的信息
}
Console.ReadLine();
           Console.WriteLine("狼人杀游戏主要身份:");//提示信息
//定义数组,存储狼人杀游戏主要角色
string[] roles = { "狼人", "预言家", "村民", "女巫", "丘比特", "猎人", "守卫" };
foreach(string role in roles)//遍历数组
{
Console.Write(role + " ");//输出遍历到的元素
}
Console.ReadLine();

二维数组:多维数组最简单的形式,一个二维数组可以被看做是一个带有x行和y行列的表格。

1.格式:数据类型[   ,   ] <数组名称>

2.初始化同样有两种:

(1)new关键字(2)字面值初始化

For example

            char[][] arr = new char[][];// 创建一个4行的二维数组
arr[] = new char[] { '春', '眠', '不', '觉', '晓' };// 为每一行赋值
arr[] = new char[] { '处', '处', '闻', '啼', '鸟' };
arr[] = new char[] { '夜', '来', '风', '语', '声' };
arr[] = new char[] { '花', '落', '知', '多', '少' };
/* 横版输出 */
Console.WriteLine("-----横版-----");
for (int i = ; i < ; i++)
{ // 循环4行
for (int j = ; j < ; j++)
{ // 循环5列
Console.Write(arr[i][j]); // 输出数组中的元素
}
if (i % == )
{
Console.WriteLine(","); // 如果是一、三句,输出逗号
}
else
{
Console.WriteLine("。"); // 如果是二、四句,输出句号
}
}
/* 竖版输出 */
Console.WriteLine("\n-----竖版-----");
for (int j = ; j < ; j++)
{ // 列变行
for (int i = ; i >= ; i--)
{ // 行变列,反序输出
Console.Write(arr[i][j]); // 输出数组中的元素
}
Console.WriteLine(); //换行
}
Console.WriteLine("。,。,"); //输出最后的标点
Console.ReadLine();
           Console.Title = "简单客车售票系统";                     //设置控制台标题
string[,] zuo = new string[, ]; //定义二维数组
for (int i = ; i < ; i++) //for循环开始
{
for (int j = ; j < ; j++) //for循环开始
{
zuo[i, j] = "【有票】"; //初始化二维数组
}
}
string s = string.Empty; //定义字符串变量
while (true) //开始售票
{
Console.Clear(); //清空控制台信息
Console.WriteLine("\n 简单客车售票系统" + "\n"); //输出字符串
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
System.Console.Write(zuo[i, j]); //输出售票信息
}
Console.WriteLine(); //输出换行符
}
Console.Write("请输入坐位行号和列号(如:0,2)输入q键退出:");
s = Console.ReadLine(); //售票信息输入
if (s == "q") break; //输入字符串"q"退出系统
string[] ss = s.Split(','); //拆分字符串
int one = int.Parse(ss[]); //得到坐位行数
int two = int.Parse(ss[]); //得到坐位列数
zuo[one, two] = "【已售】"; //标记售出票状态
}