C#基础

分支: switch
            switch(表达式)
                {
                    case 具体值1:
                        语句;
                        ....;
                        break;
                    case 具体值2:
                        语句;
                        ....;
                        break;
                    .....

default:
                        语句;
                        ....;
                        break;

}
    案例:
            string s = Console.ReadLine();
                switch (s)
                {
                    case "1":
                        Console.WriteLine("你选择的是库存管理模块");
                        break;
                    case "2":
                        Console.WriteLine("你选择的是入库管理模块");
                        break;
                    case "3":
                        Console.WriteLine("你选择的是出库管理模块");
                        break;
                    case "4":
                        Console.WriteLine("你选择的是加工管理模块");
                        break;
                    case "5":
                        Console.WriteLine("你选择的是退出系统");
                        break;

default:
                        Console.WriteLine("输入的指令不可设别,请重新输入");
                        break;

}
循环: while

初始条件
    while(循环条件)
    {
        循环体;
        状态的改变;
    }
    案例:
                int i=0;
                while(i<10)
                {
                    Console.WriteLine("您好@");
                    i++;
                }
    它是从下面演变过来的:
                //int i = 0;
                //for (; i < 10; )
                //{
                //    Console.WriteLine("您好!");
                //    i++;
                //}

foreach 一般用来循环遍历数组(或集合)的。

用来从头到尾遍历,不涉及到下标或计数;而且循环过程中,不能修改数组或集合中的值。
    foreach(变量类型 变量 in 数组或集合)
    {
        Console.WriteLine(变量);
    }

数组:锯齿数组 数组的数组
    1、定义
    1.定义数组的数组:
            int[][] a = new int[3][];
    2.定义一维数组:
                int[] a1 = new int[5] { 10, 20, 30, 40, 50 };
                int[] a2 = new int[2] { 60, 70 };
                int[] a3 = new int[3] { 80, 90, 100 };
    3.把一维数组放到数组的数组中。
                a[0] = a1;
                a[1] = a2;
                a[2] = a3;

2、操作某个元素:
    a[行][列]
                for (int i = 0; i < a.Length; i++)
                {
                    for (int j = 0; j < a[i].Length; j++)
                    {
                        Console.Write(a[i][j] + "\t");
                    }
                    Console.WriteLine();
                }

集合:
数组与集合的区别:
数组:同一类型,连续存储。优点:存储效率高,检索速度快。 缺点:连续的,不能扩展,不能删除,不能插入
集合:同一类型,不连续存储。

集合的操作:——ArrayList是集合中的一种
一、链表--每个存储值都会分配一个索引号,通过索引号可对每个元素赋值或者取值
    弱类型的集合:
    ArrayList list = new ArrayList();
    添加操作:list.Add(值);
    插入操作:list.Insert(下标,值)
    删除操作:list.RemoveAt(下标)
    清空集合:list.Clear()
    获得集合中元素个数:int n = list.Count;

获取某个值:object n = list[下标];

强类型的集合:
    List<类型> 集合名 = new List<类型>();
    添加操作:list.Add(值);
    插入操作:list.Insert(下标,值)
    删除操作:list.RemoveAt(下标)
    清空集合:list.Clear()
    获得集合中元素个数:int型名 n = list.Count;

二、哈希表:--每个元素都由两部分组成,一部分叫key,一部分叫value
    弱类型
    Hashtable list = new Hashtable();
    添加操作:list.Add("名","值");
    删除操作:list.Remove("名");
    清空集合:list.Clear()
    获得集合中元素个数:int n = list.Count;

获取值:    object n = list["名"];

强类型:
    Dictionary<string, string> table = new Dictionary<string, string>();
    添加操作:table.Add("名","值");
    删除操作:table.Remove("名");
    清空集合:table.Clear()
    获得集合中元素个数:int n = table.Count;

获取值:    object n = table["名"];

三。队列:特点:先进先出
    Queue<string> s = new Queue<string>();
    进队:s.Enqueue("我"); //进队
    出队:sting str = s.Dequeue();

不能插队,不能中间离队。

四、栈:特点:先进后出。
    Stack<string> s = new Stack<string>();//栈
    进栈:s.Push("我");
    出栈:string str = s.Pop();

不能中间插入,不能中间离开。

五、递归——自己调自己 —— 将来可能会用到,但是现在仅做了解。

int Add(int a)
    {
        int b = Add(a+1);
        Console.WriteLine(b);
    }

void 讲故事()
    {
        Console.Write("从前。。。,老和尚说:");
        讲故事();
    }

void 找子级文件夹(当前文件夹)
    {
        if(当前文件夹下没有子文件夹)
        {
            return;           
        }
        找子级文件夹(当前文件夹下的第一个子文件夹);
    }

//猴子吃桃子。
            static int TaoZi(int day) //接收天数,返回这一天的桃子数
            {
                if (day == 7)
                {
                    return 1;
                }
                int c = (TaoZi(day+1) + 1) * 2;
                return c;
            }

//程序员与富翁:
            static double Money(int day)
            {
                if (day == 1)
                {
                    return 0.01;
                }
                double a = Money(day-1) * 2;
                return a;
            }
六、枚举:——结构体。枚举也是我们自己定义的类型。
            可以使用它替代一些难以记忆的整数
            枚举和整数之间可以互相转换
    语法:
    [public] enum 枚举名
    {
        值1;
        值2;
        值3;
        ......
    }
    [public]:访问修饰符。公开的公共的,哪都可以访问。
    enum :关键字,声明枚举的关键字
    枚举名:要符合Pascal命名规范
   
    使用:枚举名.成员名(值名)

将枚举声明到命名空间的下面,类的外边,表示这个命名空间下,所有的类都可以使用这个枚举。

枚举就是一个变量类型,例如 int double string decimal
    只是枚举命名、赋值、使用的方式跟那些普通的变量类型不一样。

c# 编程--基础部分补全篇的更多相关文章

  1. [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式

    [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...

  2. [.net 面向对象编程基础] (14) 重构

    [.net 面向对象编程基础] (14) 重构 通过面向对象三大特性:封装.继承.多态的学习,可以说我们已经掌握了面向对象的核心.接下来的学习就是如何让我们的代码更优雅.更高效.更易读.更易维护.当然 ...

  3. Java入门——(1)Java编程基础

    Java入门--(1)Java编程基础 第二章 Java编程基础   JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 }   2.1关键字:赋予了特殊含义的单词.   2.2标识符: ...

  4. Java笔记(一)编程基础与二进制

    编程基础与二进制 一.编程基础 函数调用的基本原理: 函数调用中的问题: 1)参数如何传递? 2)函数如何知道返回什么地方? 3)函数结果如何传递给调用方? 解决思路是使用内存来函数调用过程中需要的数 ...

  5. 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础

    第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...

  6. shell编程基础进阶

    为什么学习shell编程 shell脚本语言是实现linux/unix 系统管理机自动化运维所必备的重要工具,linux/unix系统的底层及基础应用软件的核心大部分涉及shell脚本的内容.每一个合 ...

  7. java编程基础二进制

    0.java编程基础 01.二进制(原码,反码,补码) 02.位运算 03.移位运算符 二进制 原码,反码,补码 1.基本概念 二进制是逢2进位的进位制,0,1是基本算符. 现在的电子计算机技术全部使 ...

  8. Java编程基础——运算符和进制

    Java编程基础——运算符和进制 摘要:本文主要介绍运算符和进制的基本知识. 说明 分类 Java语言支持如下运算符: ◆ 算术运算符:++,--,+,-,*,/,%. ◆ 赋值运算符:=,+=,-= ...

  9. 第二章 Matlab面向对象编程基础

    DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...

随机推荐

  1. linux性能分析工具Swap

  2. 8VC Venture Cup 2017 - Elimination Round - C

    题目链接:http://codeforces.com/contest/755/problem/C 题意:PolandBall 生活在一个森林模型的环境中,定义森林由若干树组成,定义树为K个点,K-1条 ...

  3. [SDOI2017]数字表格 (莫比乌斯反演)

    链接:https://ac.nowcoder.com/acm/problem/20391来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  4. python如何简单的处理图片(1):打开\显示

    一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此, ...

  5. Xcode7.1环境下上架iOS App到AppStore 流程②

    前言部分 part二部分主要讲解 iOS App IDs 的创建.概要文件的配置.以及概要文件安装的过程. 一.iOS App IDs 的创建 1)进入如图1所示界面点击右上角箭头所指的加号 进入iO ...

  6. 服务器构建CentOS+Jenkins+Git+Maven之爬坑

    ssh端口变更后,git如何访问远端中央代码库 参考来源: http://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin http://blog.csdn ...

  7. 如何用命令行启动android的模拟器(简要描述)

    参考来源 http://blog.sina.com.cn/s/blog_5033827f0101cxhz.html 环境前置条件: 已安装JDK,已下载并安装了SDK 1.查看已安装的SDK平台:an ...

  8. SQL Server 2005 的动态管理视图DMV和函数DMF

    优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...

  9. shell脚本学习 (9) 提取开头或结尾的几行

    1 提取开头的n行 用head awk或者 sed实现 do.txt sed 1q do.txt awk 'FNR <= 1' do.txt do.txt文件 2 显示行尾的几行 用tail - ...

  10. [USACO10FEB] 吃巧克力Chocolate Eating (二分答案)

    题目链接 Solution 先直接二分答案,然后贪心判断,一旦少于答案就吃一块. 思路很简单,有一点细节. 一天内可以不吃巧克力. 注意处理最后时没吃完的全部在最后一天吃完. Code #includ ...