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


相关推荐

  • nsga2 matlab,NSGA2算法特征选择MATLAB实现(多目标)

    nsga2 matlab,NSGA2算法特征选择MATLAB实现(多目标)利用nsga2进行进行特征选择其主要思想是:将子集的选择看作是一个搜索寻优问题(wrapper方法),生成不同的组合,对组合进行评价,再与其他的组合进行比较。这样就将子集的选择看作是一个是一个优化问题。需要优化的两个目标为特征数和精度。nsga2是一个多目标优化算法。具体的特征选择代码在上述代码的基础上改了两个①主函数②评价函数,增加了一个数据分成训练集和测试集的函数:MATLABfunction…

    2022年5月19日
    41
  • mysql存储long型数据_int数据类型

    mysql存储long型数据_int数据类型MySQL的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且MySQL允许我们指定数值字段中的值是否有正负之分或者用零填补。表列出了各种数值类型以及它们的允许范围和占用的内存空间。类型大小范围(有符号)…

    2026年1月31日
    3
  • vue axios轮询更新echarts 页面崩溃问题

    vue axios轮询更新echarts 页面崩溃问题之前做过一个项目测试发现这个问题,就是页面停留3,4个小时之后页面崩溃了后来观察了浏览器的Memory发现echarts实例还有echarts数据缓存在不断累积解决:刚开始看了echarts官方api确实提供了echarts.clear()清空当前实例,会移除实例中所有的组件和图表。用了以后发现作用不是很大还是会崩溃。那就是实例的问题了刚开始只是加了个判断 letmyEcharts if(!myEcharts){ myEcharts=echarts.init

    2025年6月16日
    7
  • oracle sequence order_二次序列

    oracle sequence order_二次序列文章目录1概述2语法2.1授权2.2创建序列2.3查询、修改、删除2.4使用序列3扩展3.1cache详解3.2cycle详解3.3常用获取序列的工具包1概述1.序列是什么:整数,一般是指从1开始的正整数2.序列有啥用:自动生成’主键’3.注意事项(1)建议’循环’使用序列(order),避免精度超出报错如:最终序列=当前年份+产生的序列(2)建议不对序列进行排序(noord..

    2022年10月19日
    3
  • 迁移数据库数据到SQL Server 2017

    迁移数据库数据到SQL Server 2017

    2021年11月26日
    40
  • linux查看网卡实时速率命令_怎么判断网卡速率是否异常

    linux查看网卡实时速率命令_怎么判断网卡速率是否异常Linux下查看网卡速率信息:1、使用ethtool命令ethtoolethx#查看支持的速率ethx为网卡名,使用ifconfig-a,ipa查询。响应数据中:Linkdetected为yes表示网卡已经连接。2、使用mii-tool命令mii-tooleth0#查看eth0网卡信息,这个命令需要root权限,没有上边的好用。3、查看网卡驱动:…

    2022年10月19日
    3

发表回复

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

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