小奇:老酷,昨天晚上去超市,购物车里放了很多东西。我结账的时候把每一件商品放到收银台上,然后,收银员小姐姐一个一个扫码,做着重复的动作像不像我们的循环。
老酷:恩!对生活观察挺仔细么?
小奇:那是。(洋洋得意)
老酷:今天就根据你的这个事儿给你讲一个新的概念---数组!!
小奇:数组?数字的分组?
老酷:数组,就是相同数据类型数据的集合。 注意 :1.相同数据类型 2.集合
小奇:那和我说的这个事儿有什么关系?
老酷:你说的购物车其实就是一个数组。在这个数组中保存了所有商品的价格。而收银小姐姐只不过是再做一个将所有价格累加并收钱找零的工作。
小奇:老酷,你是人么?这都能和程序结合起来!!
老酷:小姐姐扫码,代替了人工输入数据。小姐姐一个一个的扫码,相当于在遍历每一个商品的价格。计算机累加,你付款,小姐姐收款 并找零。
小奇:别秀了,给我说说数组的概念。
老酷:数组定义很特别,就是在数据类型后面加一对括号[] 比如字符串数组 string[] 字符数组 char[] 整型数组 int[] 布尔数组 bool[] 等等 你发现规律了么?
小奇:发现了。在之前学习的数据类型后加方括号就是数组类型
老酷:那我们声明一个数组吧!
//数组声明
int[] numArr;
//数组实例化
numArr = new int[5] { 1,2,3,4,5};
或者
//数组声明
int[] numArr;
//数组实例化
numArr = new int[] { 1,2,3,4,5};
或者
//数组声明并实例化
int[] numArr = { 1,2,3,4,5,6};
或者
//数组声明并实例化
int[] numArr =new int[5];
以上的所有数组都是用的是整型数。在第一种情况中数组的声明和实例化是分开的,表示一个长度是5的数组。在数组中的每一个数都是数组的元素。第二种实例化方式直接将长度略写了。数组长度是由数组元素的个数决定的。第三种将数组实例化的方式省略掉了。数组长度也是由数组元素的个数决定的。最后一种情况 没有直接给数组赋值。但是确定了数组的长度。数组元素的默认值都是。
小奇:数组的声明实例化方式有这么多呀。
老酷:数组中的每一个元素相当于你购物车中每一件商品的价格。
小奇:哦!那怎么对他们进行累加?
老酷:在学习累加前我们需要知道每一个元素的编号。我们称这个编号叫做下标或者索引。
小奇:这个下标(索引)有什么用呢?
老酷:对于一个数组来说,表示一个集合。他代表不了每一个元素。里面的元素只不过是属于这个集合罢了。如果说数组是一个学校。那么元素就是学校的学生。元素的下标就是每一个学生的学号。学号是不会重复的。数组的元素的下标也是不重复的。
小奇:那第一个元素的下标就是1,第二个。。。
老酷:打住!数组元素的下标是从0开始的!你还记得第一天学习控制台输出的时候的占位符么?占位符的下标也是从0开始的。
小奇:我知道了,在循环的时候,for循环的快捷键默认的i值也是从0开始的。
老酷:是的。你的观察很秀!我们在使用每一个元素的时候可以通过数组名和下标来操作。
比如我们访问数组某一个元素的信息
static void Main(string[] args)
{
//数组声明并实例化
int[] numArr = { 7,5,6,4,2,9};
//打印下标为2的元素
Console.WriteLine(numArr[2]);
}
运行结果
6就是下标为2的元素
小奇:原来c#的下标是从0开始的呀!那么对于给数组制定下标的元素赋值就是
numArr[2] = 54;
老酷:是的。那么我们和循环结合使用看一下数组是如何遍历数组的吧!
遍历数组
如果累加的话我们得定义一个累加的变量
static void Main(string[] args)
{
//数组声明并实例化
int[] numArr = { 7,5,6,4,2,9};
int sum = 0;
for (int i = 0; i < numArr.Length; i++)
{
sum += numArr[i];
}
Console.WriteLine(sum);
}
运算结果
小奇:好吧,又是充实的一天!
网友评论