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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字符串的匹配算法_多字符串匹配

    字符串的匹配算法_多字符串匹配目录需求基础知识逻辑解析源码实现需求先简单描述溪源曾经遇到的需求:需求一:项目结果文件中实验结论可能会存在未知类型、转换错误、空指针、超过索引长度等等。这里是类比需求,用日常开发中常出现的错误类型作为需求,如果要以上结论则判断这个项目检测失败;解决方案一:大家常用的方式可能是if(){continue;}esleif(){continue;}…或者switch-case等;方案二:可能会使用集合contain()方法;方案三:依次匹配字符串中字符(暴力匹配);以上两种方案都能解决;然

    2022年8月21日
    1
  • jenkins拉取gitlab代码_查看git仓库地址

    jenkins拉取gitlab代码_查看git仓库地址前言python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了新建项目打开Jenkins新建一个自由风格的项目源码管理Repository

    2022年8月6日
    1
  • mysql批量写入_mysql insert多条数据

    mysql批量写入_mysql insert多条数据最近新的项目写了不少各种insertBatch的代码,一直有人说,批量插入比循环插入效率高很多,那本文就来实验一下,到底是不是真的?测试环境:SpringBoot2.5 Mysql8 JDK8 Docker首先,多条数据的插入,可选的方案:foreach循环插入 拼接sql,一次执行 使用批处理功能插入搭建测试环境`sql文件:dropdatabaseIFEXISTStest;CREATEDATABASEtest;usetest;DROPT

    2022年10月6日
    0
  • python豆瓣代替pip安装python模块

    python豆瓣代替pip安装python模块

    2020年11月8日
    231
  • java对象数组 创建对象数组,初始化对象数组「建议收藏」

    java对象数组 创建对象数组,初始化对象数组「建议收藏」对象数组的概念:如果一个数组中的元素是对象类型,则称该数组为对象数组。当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。对象数组的定义和使用:对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。对象数组的声明形式是:类名对象数组名[];为对象数组分配内存空间:对象数组名=new类名[数组长度];//注意:此处不是构…

    2022年5月20日
    46
  • 【超详细教程】移植RT-Thread nano,并基于 nano 添加 FinSH/shell

    【超详细教程】移植RT-Thread nano,并基于 nano 添加 FinSH/shell目录背景:移植RT-Threadnano,并基于nano添加FinSH/shell前提及准备工作step1:添加rt-threadnano到裸机工程1.1、NanoPack安装方法一:PackInstaller安装方法二:手动安装1.2、基础工程准备1.3、开始移植rttnano到裸机工程1.4、适配RT-Threadnano1.5…

    2022年5月21日
    85

发表回复

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

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