• C#—总结


    数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体

    一、数据类型:
    (一)内建类型
    整型(int short long byte uint ushort ulong sbyte),浮点(double float decimal),布尔(bool),字符(char)。

    对于整型和浮点型都有个ToString("格式化字符串"):
     #——任意一个数字。有的话就显示,没有就不显示。
     0——必须有一个数字,没有的话就补零。
     .——小数点
     ,——千位分隔。

    (二)常用的类
    Math DateTime string
    Math:
     Math.Ceiling(double ):大于当前小数的最小整数。
     Math.Floor(double):小于当前小数的最大整数。
     Math.Round(double):四舍五入

    DateTime:
     Year,Month,Day,Hour,Minute,Second,MilliSecond,DayOfWeek,DayOfYear
     AddYears(n),AddMonths(),AddDays().........
     ToString("格式化字符串"):格式显示。
     yyyy,yy——年份。MM,M——月份。dd,d——天。hh,h——时。mm,m——分。ss,s——秒。ms——毫秒


    (三)自定义类型
    struct

    二、变量与常量
    (一)变量就是装数据容器。——U盘
    定义:
     数据类型 变量名[ = 值],变量名[ = 值],....;
      int a,b; int a = 5,b;
     变量的命名规则:
      1.变量名只能由字母、数字、下划线组成
      2.只能字母,下划线开头
      3.不能与关键词重复。

    赋值:
     变量名=值;——注意:变量类型与等号右边的值类型相一致。不一致就需要进行类型转换。
     类型转换:
      1.自动转换:一般来说自动转换,只要不存在丢数据的可能性,计算就会自动转化。例如:double a = 3+5.0;
      2.强制转换:只要存在丢数据的可能性,计算机就不给自动转化,需要手动强制转化。
       Convert.Toxxx(); Convert.ToInt32();
       double a = 3.14;
       int b = (int)a;

    取值:直接写变量名。

    (二)常量:常量也是装数据的容器,但在运算过程中常量不能放在单等的左边。——一次性光盘
    分类:字面常量,符号常量。  
    定义:const int PI = 3.14;
    注意:常量在定义的时候必须要赋值。
    取值:直接使用常量取值。

    三、运算符:
    算术,关系,逻辑,其它
    (一)算术——7
    + - * / % ++ --
    整数除整数还是整数。
    (二)关系——6
    == != > >= < <=
    (三)逻辑——3
    &&  ||  !
    (四)其它
    1.复合运算符:+= -= *= /= %=
    2.赋值: =   
    3.条件运算符:表达式1?表达式2:表达式3

    四、语句:顺序、分支、循环:

    (一)分支——if
    if(表达式)
    {
    }

    if(表达式)
    {
    }
    else
    {
    }

    if(表达式)
    {
    }
    else if(表达式)
    {
    }
    ...

    else
    {
    }

    if(表达式)
    {
           if(表达式)
           {
           }
           else
           {
           }
    }

    else
    {
         ...
    }

    例子:
    1.判断闰年,平年
    2.一元二次方程根的情况
    3.男女体重与身高
    4.判断日期是否正确。

    (二)循环
    for(初始条件;循环条件;变量改变)
    {
          循环体
    }

    循环的四要素:

    循环的嵌套:打印星号。

    两类问题:迭代法,穷举法。

    迭代法: 按照某种规律通过循环迭代求解。
    求100以内数的和,求阶乘。
    1.5个小孩子求年龄
    2.棋盘上放粮食
    3.折纸与珠峰的高度。
    4.落球问题。
    5.猴子吃桃子
    6.兔子生兔子。

    穷举法:把所有的情况都走一遍,根据条件筛选。
    求100以内与7相关的数。
    1.买东西。
    2.百鸡百钱,百马百石。
    3.侦察兵
    4.求等式。

    五、数组:
    思想:解决大量同类数据存储和操作的问题。
    特点:连续,同一类数据。
    分类:一维数组,二维数组,多维数组。

    一维数组:
    定义:
     数据类型[] 数组名 = new 数据类型[数组的长度] [{初始化}];
    赋值:
     数组名[下标] = 值;
     可以与循环结合起来。
    取值:
     数组名[下标];
     可以与循环结合起来。

    例子:
    1.球员打分
    2.选班长
    3.36选7
    3.青歌赛。

    二维数组:
    定义:
     数据类型[,] 数组名 = new 数组类型[行数,列数] [{初始化}];
    赋值:
     数组名[行下标,列下标] = 值;
    取值:
     数组名[行下标,列下标];

    例子:
    1.学生成绩。
    2.推箱子。

    两个应用:二分法查找,冒泡排序。
    二分法查找思想:前提是数组有序,每次找中间的值对比,否满足条件就扔一半。
    使用最大下标max、最小下标min,中间值下标mid,控制查找的范围。 mid = (max+min)/2;   max = mid+1; min = mid-1;
    如果一直查到min>max就结束了,说明没有找到。

    冒泡排序的思想:相邻两个数进行依次对比,互换。
    两层循环,外层循环趟数,内层循环每趟的次数。
    趟数:n-1
    次数:n-i

    for(int i=1;i<=n-1;i++)
    {
            for(int j=1;j<=n-i;j++)
            {
                  if(a[j] > a[j-1])
                  {
                      互换。
                  }
            }
    }

    六、函数:
    什么是函数:能够完成某个独立功能模块就可称之为函数。
    为什么要用函数:结构清晰,分工开发,代码重用。
    四要素:函数名,形参,返回类型,函数体。
    定义语法:
    返回类型 函数名(形参列表)
    {
        函数体
    }

    调用:
    函数名(实参列表);
    数据类型 变量名 = 函数名(实参列表);

    函数的传值与传址的问题。
    1.内建类型,日期时间都是默认传值。    ——ref
    2.数组,字符串默认都是传址。

    函数的返回值。——return 值或变量;要保持return后面的类型与函数的返回类型要一致。

    递归。自己调自己。
    语法思想:
    返回类型 函数名(参数)
    {
           1.结束递归的判断。
           2.递归运算:函数名(参数);
    }

    七、结构体:
    为什么要用结构体?自己定义的复合类型,更好地模拟生活中的各种对象。

    定义
    struct 结构体名
    {
          public 类型 子变量名;
          public 类型 子变量名;
          ....
    }

    使用:
    结构体名 结构体变量 = new 结构体名();
    结构体变量.子变量 = 值;
    结构体变量.子变量;

    结构体数组:
    结构体类型[] 数组名 = new 结构体类型[长度];
    数组名[下标].子变量

    如何使用循环来操作结构体数组。

    例子:学生成绩统计。对战的小游戏。

  • 相关阅读:
    餐巾计划问题 zwk费用流解法
    Subsequence Count 2017ccpc网络赛 1006 dp+线段树维护矩阵
    smarty之缓存机制
    mysql中 where in 用法详解
    sql语句中left join、inner join中的on与where的区别
    PHP表单数组的具体使用方法介绍
    document.body.scrollTop值为0的解决方法[转]
    left join on and和left join on where条件的困惑[转]
    Uedit32_17.00 修改某一语言背景色-修改后续名后语法着色及某语言的大括号{}对齐
    CSS 针对谷歌浏览器(Chrome) safari的webkit核心浏览器CSS hack
  • 原文地址:https://www.cnblogs.com/Claires/p/4208817.html
Copyright © 2020-2023  润新知