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


相关推荐

  • React项目的国际化

     最近做的react项目需要支持国际化,网上查了一下,发现一款很好的插件“react-intl-universal”,由阿里巴巴团队开发,这款插件是原先的国际化插件“react-intl”的升级版,“react-intl”因为一些“致命”缺陷现已被其取代,npm官网有罗列原因,有兴趣的可以去了解一下。下面具体介绍一下这款插件的使用方法。1.安装npminstallreact-i…

    2022年4月12日
  • 自动阈值法.m_自动阈值夺获功能

    自动阈值法.m_自动阈值夺获功能%自动阈值法:Otsu法用MATLAB实现Otsu算法:clc;clear;close;I=imread(‘e:\role0\003i.bmp’);subplot(1,2,1),imshow(I);title(‘原始图像’)gridon;%显示网格线axison;%显示坐标系level=graythres

    2022年10月19日
  • request对象、response对象、session对象

    request对象、response对象、session对象仅仅是一些简单知识点的罗列,当做笔记,想具体学习的话,还是要找专业的书籍看看request对象作用:获取用户提供的信息语法:是实现了ServletRequest接口类的一个实例使用表单向服务器的某个JSP页面提交信息常用方法:设置编码方式:例如(用来防止汉字乱码)request.setCharacterEncoding(“gb2312”);同效果:Stringstr=r…

    2022年6月9日
  • mysql bulkupdate_django_bulk_update源码分析

    mysql bulkupdate_django_bulk_update源码分析##django_bulk_update源码分析这个第三方插件的体量几乎只相当于工作时两三天的代码量了,是一个比较容易开始进行源代码阅读的模块,阅读完这个代码对自定义的进行django拓展也是一个相当好的借鉴###django_bulk_update文件结构django_bulk_update在被调用时实际只有四个文件,分别是1.\_\_init__.py2.helper.py3.man…

    2022年10月29日
  • 什么是跨域?如何解决跨域问题?

    什么是跨域?如何解决跨域问题?什么是跨域?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域域名:主域名不同http://www.baidu.com/index.html–&amp;gt;http://www.sina.com/test.js子域名不同http://www.666.baidu.com/index.html–&amp;gt;http://www.555.baidu.co…

    2022年6月14日
  • 深入研究Clang(三) libclang

    深入研究Clang(三) libclang

    2021年11月15日

发表回复

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

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