C#整理

时间:2021-01-24 14:42:49

输入输出--数据类型--变量与常量--运算符表达式--语句(顺序、分支、循环)--数组--函数--结构体
一、输入与输出。
Console.ReadLine();
Console.WriteLine();
Console.Write();

二、数据类型:
(一)分类:
1.值类型:
基本类型:int(short long),double(float decimal),bool,char
复杂类型:
DateTime Now,ToString("yyyyMMdd...."),AddXXXX(),DayOfWeek,DayOfYear
struct
enum
2.对象类型(引用类型):
string——字符串的操作:Length,Trim()TrimStart(),TrimEnd(),ToLower()ToUpper(),IndexOf(),LasIndexOf(),ReplaceWith(),Substring(),Contains(),StartWith(),EndWith()
数组.
Random
(二)类型转换:
1.自动转换(隐式转换)
只要不可能丢数据,就会自动转换。

2.强制转换(显示转换)
只要可能会出现丢数据,就需要强制转。
语法:a.使用();b.使用Convert.
如果要把数值模样的字符串变成整数,必须使用Convert

三、变量与常量
(一)变量——U盘
1.定义:
数据类型 变量名[=值[,变量名=值]];
变量名的命名规则:a.组成。b.首字符。c.关键词
2.赋值:变量名=值;
3.取值:直接使用变量名。

注意变量的作用域:变量只在它所在的花括号里面起作用,出了花括号就访问不到了。
1.在同一个花括号内,不能出两个重名的变量定义。
2.如果多重花括号,外层和里层都出现同一个变量的定义,则使用的时候遵循“就近原则”。

(二)常量——光盘
在程序只能定义的时候赋值,在运算的时候无法修改值(不能放在等号的左边)
1.定义:
const 数据类型 常量名 = 值; //一般来说常量名统统大写。
2.取值:直接使用常量名。
3.分类:符号常量和字面常量。
int a = 10; //10就是字面常量
const int PI = 3.14; //PI-符号常量;3.14字面常量

四、运算符:
(一)算术 7 ——自动转换
+ - * / % 取余一般用在两种情况下:1.看看能不能整除。2.把值控制在某个范围之内。
++ -- 前,后。前——先自增(减),再做其它运算;后——先其它运算,最后自增(减)
(二)关系 6 ——返回bool
== !=
> < >= <=
(三)逻辑 3
&& || !
(四)其它 
= 赋值:把右边关到左边去。因此:=左边只能是变量,不能是常量或表达式。
?:条件运算符:表达式1?表达二:表达式三 if...else...
复合运算符:+= ,-= *= /= %=

运算符优先级:

++ --
算术>关系>逻辑>赋值

使用()来改变运算的优先级。

五、语句:顺序、分支、循环
(一)分支:
1.if
(1)if(条件){}
(2)if(条件){} else {}
(3)if(条件){} else if(条件){}...else{}
(4)if(条件){if(条件){}..else{}} else{if(条件){}...else{}}
案例:
a.18岁抓当兵。
b.相亲
c.体重
d.平年闰年 ——判断一个日期是否正确。
e.一元二次方程根的情况。

2.switch
switch(表达式)
{
case 常量:
...
break;
case 常量:
...
break;
default
break;
}

(二)循环:
1.基本语法:
(1).for
for(初始条件;循环条件;状态改变)
{
循环体
}
循环的四要素:。。。。。。

(2).while
初始条件
while(循环条件)
{
循环体
状态改变
}
2.循环嵌套:
for(;;)
{
for(;;)
{
}
}

3.应用:
a.打印星号。好多图形。
b.穷举。把各种可能的情况都走一遍,筛选出符合条件的。
●100以内所有与7有关的数。
●买牙刷,洗发水,香皂
●百鸡百钱,百马百石
●兑硬币
●填+-号使等式成立的。
●侦察兵

c.迭代。找到规律,使用变量不断累计的功能实现运算。不断求中间结果,直到得出最终的结果。
●100以内所有数的和
●猴子吃桃
●小朋友算年龄
●折纸-珠峰
●棋盘分米
●富翁与程序员
●兔子

六、数组与集合
(一)数组:同一类型,连续存储
1.一维:——豆角
定义: 数据类型[] 数组名 = new 数据类型[长度]{初始值列表};
赋值:数组名[下标] = 值;
取值:数组名[下标]
与for语句配合用:——使用循环来控制下标。 
数组常用的属性:Length。要搞清下标与长度的关系。

应用:
●球员打分。
●彩票
●排序
●二分法查找。

2.二维:——表格
定义:数据类型[,] 数组名 = new 数据类型[行数,列数]{初始值列表};
赋值:数组名[行下标,列下标] = 值。
取值:数组名[行下标,列下标]
与循环配合用:
for(;;) //循环行
{
for(;;)//循环列
{
}
}

应用:
●推箱子。

3.锯齿:——数组中的数组
定义:
1.定义数组中的数组:数据类型[][] 数组名 = new 数据类型[行数][];
2.定义一维数组:
3.把一维数组赋给数组的数组。

(二)集合:不用连续
1.链表
弱类型:ArrayList list = new ArrayList(); //using System.Collection;
强类型:List<类型> list = new List<类型>(); //using System.Collection.Generic;
2.哈希表
弱类型:Hashtable table = new Hashtable();
强类型:Dictionary<key类型,value类型> table = new Dictionary<key类型,value类型>();

栈,队

七、函数:
什么是函数?能够完成一定功能的独立模块。
函数的四要素:函数名,形参(输入),返回类型(输出),函数体(加工运算)。
(一)定义:
[static] 返回类型 函数名([变量类型 变量名[,变量类型 变量名[...变量类型 变量名]]])
{
函数体
}

(二)调用:
[数据类型 变量名 = ]函数名([实参1[,实参2...]])

说明:
1.函数名与变量名规则一样。
2.实参与形参一定要一一对应。
3.return所返回值一定要与"返回类型"一致。
4.函数定义没有一定的原则,只要好用就可以。

(三)递归——仅作了解

八、结构与枚举:
(一)结构体——自己定义的复杂的类型。
什么是结构体?为什么需要用到结构体?
定义:
struct 结构体名
{
public 数据类型 成员变量名;
public 数据类型 成员变量名;
public 数据类型 成员变量名;
...
}
使用:

结构体名 变量 = new 结构体名();
变量.成员变量 = 值
变量.成员变量

说明:结构体的成员,还可以用其它结构体来定义。

(二)枚举:使用枚举来替代一些难以记忆的整数。
枚举和整数之间可以相互强制转换。
定义:
enum 枚举名
{
成员名[=整数],
成员名[=整数],
成员名[=整数],
....
成员名[=整数]
}

使用:
枚举名.成员名