C#基础知识回顾

C#基础知识回顾

image      

  相同数据类型不同的定义变量方式。

            int a = 5;
            Int32 b = 6;

            long c = 4;
            Int64 d = 4;

            double e = 3.14;
            Double f = 3.14;

            float g = 3.14f;
            Single h = 3.14f;

            bool aa = true;
            Boolean bb = true;

            string s = "Hello";
            String ss = "Hello";

 

数据类型--变量与常量--运算符与表达式--语句(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 结构体类型[长度];
数组名[下标].子变量

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

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

posted @ 2015-01-06 11:45  Valentino  阅读(366)  评论(0编辑  收藏  举报