zoukankan      html  css  js  c++  java
  • 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 结构体类型[长度];
    数组名[下标].子变量

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

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

  • 相关阅读:
    手写PE文件(不借助编译器,用十六进制数进行编写)
    浅谈代码段加密原理(防止静态分析)
    PE文件动态加载执行过程
    静态数据连接库(.lib)和动态连接库(.dll)
    关于普通断点/内存断点/硬件断点
    x64dbg零基础使用教程
    HOOK相关原理与例子
    socket,实现服务器和客户端对话
    解析PE文件
    python正则表达式---基于re模块
  • 原文地址:https://www.cnblogs.com/w297613932/p/4205866.html
Copyright © 2011-2022 走看看