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

C#数组–(一维数组,二维数组的声明,使用及遍历)数组:是具有相同数据类型的一组数据的集合。数组的每一个的变量称为数组的元素,数组能够容纳元素的数称为数组的长度。一维数组:以线性方式存储固定数目的数组元素,它只需要1个索引值即可标识任意1个数组元素

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

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

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

4.初始化方式有两种:

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

For example

 

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

 

      int[] score = new int[4] { 95, 88, 80, 96 };

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

 

 

1.for循环,foreach循环

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

3.遍历数组时避免越界

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

For example

  //创建并初始化一维数组
  int[] day = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  for (int i = 0; i < 12; i++)                                //利用循环将信息输出
  {    
  Console.WriteLine((i + 1) + "月有" + day[i] + "");       //输出的信息
  }
  Console.ReadLine();
            int[] score = new int[4] { 95, 88, 80, 96 };
            Console.WriteLine("小明的各科成绩如下:");
            for (int i = 0; i < 4; 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][];// 创建一个4行的二维数组
            arr[0] = new char[] { '', '', '', '', '' };// 为每一行赋值
            arr[1] = new char[] { '', '', '', '', '' };
            arr[2] = new char[] { '', '', '', '', '' };
            arr[3] = new char[] { '', '', '', '', '' };
            /* 横版输出 */
            Console.WriteLine("-----横版-----");
            for (int i = 0; i < 4; i++)
            {                           // 循环4行
                for (int j = 0; j < 5; j++)
                {                        // 循环5列
                    Console.Write(arr[i][j]);                   // 输出数组中的元素
                }
                if (i % 2 == 0)
                {
                    Console.WriteLine(",");                     // 如果是一、三句,输出逗号
                }
                else
                {
                    Console.WriteLine("");                     // 如果是二、四句,输出句号
                }
            }
            /* 竖版输出 */
            Console.WriteLine("\n-----竖版-----");
            for (int j = 0; j < 5; j++)
            {                           // 列变行
                for (int i = 3; i >= 0; i--)
                {                  // 行变列,反序输出
                    Console.Write(arr[i][j]);                   // 输出数组中的元素
                }
                Console.WriteLine();                                //换行
            }
            Console.WriteLine("。,。,");                        //输出最后的标点
            Console.ReadLine();
           Console.Title = "简单客车售票系统";                     //设置控制台标题
            string[,] zuo = new string[9, 4];                           //定义二维数组
            for (int i = 0; i < 9; i++)                                 //for循环开始
            {
                for (int j = 0; j < 4; j++)                             //for循环开始
                {
                    zuo[i, j] = "【有票】";                         //初始化二维数组
                }
            }
            string s = string.Empty;                                    //定义字符串变量
            while (true)                                            //开始售票
            {
                Console.Clear();                                    //清空控制台信息
                Console.WriteLine("\n        简单客车售票系统" + "\n"); //输出字符串
                for (int i = 0; i < 9; i++)
                {
                    for (int j = 0; j < 4; 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[0]);                         //得到坐位行数
                int two = int.Parse(ss[1]);                         //得到坐位列数
                zuo[one, two] = "【已售】";                         //标记售出票状态
            }

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155316.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月2日 下午12:00
下一篇 2022年7月2日 下午12:00


相关推荐

  • librosa | 系统实战(五~十七)

    librosa | 系统实战(五~十七)文章目录十 librasa core Spectralrepr 1 librosa core stft 输出帧数说明 2 librosa core istft 3 librosa core ifgram 4 librosa core cqt 十一 Audioprocess 1 librosa effects split 2 librosa core load 3 librosa core to mono 4 librosa core resample 5 librosa

    2026年3月16日
    2
  • directx修复工具强力修复_dll修复工具增强版

    directx修复工具强力修复_dll修复工具增强版说明:   此更新包仅限于升级已有的程序至最新版(如从V1.0版、V1.1版、以及V1.2标准版升级到V1.2增强版),如果您之前没有使用过DirectX修复工具,请勿使用本更新包,请直接从官方地址下载完整的程序包。 下载地址:http://download.csdn.net/detail/vbcom/4050752 请按照压缩包内的“更新说明.txt”文件进行更新即可。

    2022年5月3日
    56
  • 2021最新Java面经系列整理,持续更新「建议收藏」

    2021最新Java面经系列整理,持续更新。。。欢迎大家关注收藏,一起加油O(∩_∩)O哈~2021最新Java面经系列 系列 内容 地址 框架篇 2021最新Java面经整理|框架篇(一)Spring框架 https://blog.csdn.net/shipfei_csdn/article/details/109530018 2021最新Java面经整理|框架篇(二)SpringMVC框架 https://blog.csdn.net/..

    2022年4月18日
    52
  • idea2021.4.14版本永久激活码_通用破解码

    idea2021.4.14版本永久激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    51
  • 前端面试:浅拷贝和深拷贝的区别是什么_java中的浅拷贝和深拷贝

    前端面试:浅拷贝和深拷贝的区别是什么_java中的浅拷贝和深拷贝浅拷贝(shallowcopy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存;  深拷贝(deepcopy):复制并创建一个一摸一样的对象,不共享内存,修改新对象,旧对象保持不变。…

    2022年10月1日
    6
  • cacl的使用

    cacl的使用1 居中元素使用 calc 给我们提供另一个垂直元素的解决方案 如果我们知道元素的尺寸 一个典型的解决方案使用负外边距移动自身距离高于宽的一般 如下 对于 300px 300px position absolute top 50 left 50 margin top 150px margin left 150px 如果使用 calc 函数 那么我

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号