数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体
一、数据类型:
(一)内建类型整型(int short long byte uint ushort ulong sbyte),浮点(double float decimal),布尔(bool),字符(char)。对于整型和浮点型都有个ToString("格式化字符串"):
#——任意一个数字。有的话就显示,没有就不显示。 0——必须有一个数字,没有的话就补零。 .——小数点 ,——千位分隔。
(二)常用的类
Math DateTime stringMath: 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选73.青歌赛。二维数组:
定义: 数据类型[,] 数组名 = new 数组类型[行数,列数] [{初始化}];赋值: 数组名[行下标,列下标] = 值;取值: 数组名[行下标,列下标];例子:
1.学生成绩。2.推箱子。两个应用:二分法查找,冒泡排序。
二分法查找思想:前提是数组有序,每次找中间的值对比,否满足条件就扔一半。使用最大下标max、最小下标min,中间值下标mid,控制查找的范围。 mid = (max+min)/2; max = mid+1; min = mid-1;如果一直查到min>max就结束了,说明没有找到。冒泡排序的思想:相邻两个数进行依次对比,互换。
两层循环,外层循环趟数,内层循环每趟的次数。趟数:n-1次数:n-ifor(int i=1;i<=n-1;i++)
{ for(int j=1;j<=n-i;j++) { if(a[j] > a[j-1]) { 互换。 } }}六、函数:
什么是函数:能够完成某个独立功能模块就可称之为函数。为什么要用函数:结构清晰,分工开发,代码重用。四要素:函数名,形参,返回类型,函数体。定义语法:返回类型 函数名(形参列表){ 函数体}调用:
函数名(实参列表);数据类型 变量名 = 函数名(实参列表);函数的传值与传址的问题。
1.内建类型,日期时间都是默认传值。 ——ref2.数组,字符串默认都是传址。函数的返回值。——return 值或变量;要保持return后面的类型与函数的返回类型要一致。
递归。自己调自己。
语法思想:返回类型 函数名(参数){ 1.结束递归的判断。 2.递归运算:函数名(参数);}七、结构体:
为什么要用结构体?自己定义的复合类型,更好地模拟生活中的各种对象。定义
struct 结构体名{ public 类型 子变量名; public 类型 子变量名; ....}使用:
结构体名 结构体变量 = new 结构体名();结构体变量.子变量 = 值;结构体变量.子变量;结构体数组:
结构体类型[] 数组名 = new 结构体类型[长度];数组名[下标].子变量如何使用循环来操作结构体数组。
例子:学生成绩统计。对战的小游戏。