感念1 .NET2.C#3
.net
变量可以重复赋值,不能重复定义!
c#(sharp锋利)语言/.net平台java既是语言也是技术.net平台能开发的应用:桌面应用(winform)c/sinternet应用(ASP.NET)b/s手机应用(windows phone)
当调用者想访问我们方法中的变量值,可以通过反回值返回。例如:strinG s=Console.ReadLine();int i=Convert.TOInt32("22")为什么方法前面能够定义一个变量收到方法拾值,是因为在方法中使用了反回值。只要在方法中反回了值,那么在调用方法时,前面就应该用一个变量来接收方法的返回值注意:一个方法只能有一个返回值一但一个方法有返回值,那么在这个方法体中,就必须通过resutn语句返回一个值,并且这个值要与返回值类型是相同的语句: return 值;
方法:功能:用来复用代码的,当我们在一个程序中反复的写了同样的代码,那一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了。定义方法的语法:publicc[访问修饰符] [static] 返回值类型 方法名([参数]){ 方法体}注意:1 方法一般要定义在类中,2 如果方法没有返回值,则返回值类型写 void3 如果方法没有参数,()不能省略
方法的调用:如果是静态方法(由static修饰的)则使用 类名.方法名()在类中调用本类的方法,可以只写方法名();return:立即退出本方法.变量的作用域:在方法中定义的变量称为局部变量,其作用域从定义开始,到其所在的大括号结束为止.当被调用者想得到调用者方法中的变量时,则可以让调用者通过参数的形式给被调用者.如:public static void Test(int number){}在方法名后面的括号内定义变量,叫作定义这个方法的参数,这里定义的变量用于接收调用者传过来的数据。注意:如果一个方法一但有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致
冒泡排序:让数组中的元素两两比较,第i个与第i+1个比较,经过n(i+1)遍两两比较,数组中的元素能按照我们预期的规律排序要从大到小排序我们进行两两比较的时候用<小于号10,20,30,40,50,60,70 原始数据20,30,40,50,60,70,10 第1趟 6次30,40,50,60,70,20,10第2趟 5次 40,50,60,70,30,20,10第3趟 4次50,60,70,40,30,20,10第4趟 3次60,70,50,40,30,20,10第5趟 2次70,60,50,40,30,20,10第6趟 1次也就是n个数需要排n-1趟第t趟比较的次数为:原数的个数n-t次i=0 第一趟i=1 第二趟趟数:i+1 t=i+1For(int j=0;j<n-i-1;j++)
N个元素进行交换1 交换n/2次2 在一个循环中,第i个元素与第length-1-i个元素进行交换
数组:可以帮我们一次声明多个同类型的变量,这些变量在内存中是连续存储的.数组声明语法:数据类型[] 数组名=new 数据类型[数组长度]例如:int[] score=new int[5];就声明了一个长度为5的数组,数组叫score通俗说:就是声明了一个数组,里边包含了5个int类型的变量,数组名叫:score,里面的5个int类型的变量叫做:数组的元素。如何访问数组:通过下标(索引)来访问数组:数组名[编号]比如,我们要向第0个元素赋一个3,可以这样写:score[0]=3;int a;表示声明一个int类型变量int 类型数组一但声明,里面的每一个元素被初始化成0。通过 数组名.Length 可以获得数组的长度Console.Clear();
为什么要用结构:1 比如我们上课讲的为了存储一个人的信息,要声明一组变量,当我们要存储N个人的信息时,就要声明N组变量,麻烦。2 存储一个人信息的这几个变量间没有关系,容易记乱。语法:访问修饰符 struct 结构名{ 定义结构成员}定义好一个结构后,就可以直接声明相应的变量了声明好变量后,通过变量名.成员名 来访问结构的成员
常量:语法:const 类型 常量名=常量值在定义时赋值,在其他地方不允许赋值。枚举:让我们定义一种枚举类型并且在定义这种类型时我们要指定这个类型的所有的值语法:enum 自己起的类型名称{值1,值2,值3.....值n};枚举的定义,一般和类定义在同一个级别,这样在同一个命名空间下的所有类型就都可以使用这个枚举了(方法中/类中也可以)枚举中也可以:枚举的作用:1 限制用户不能随意赋值,只能在定义枚举时列举的值中选择。2 不需要死记每一个值是什么,只需要选择相应的值。注意:定义枚举时,值不能是int类型。枚举类型的变量都可以强制转换成一个int类型枚举的值在定义时是有一个默认编号的,编号从0开始如果把一个字符串转换成枚举类型:(自己定义的枚举类型)(Enum.Parse(typeof(自己定义的枚举类型),"待转换的字符串"));
break:1 可以用于switch-case判断中,用于跳出switch2 用在循环中,用于立即跳出(终止)循环注意:用于循环中时,跳出的是break所在的 循环continue:用于循环中,程序一但执行到continue语句,立即结束本次循环(就是不再执行循环体中continue下面的语句了)直接进行下一次循环(do-while/while直接进行下一次循环条件的判断,如果条件成立,则再次进入循环,对于for循环,先执行表达式3,再判断循环条件是否成功!)三元表达式:表1? 表2:表3执行过程:首先计算表达式1,表达式1应该是一个能够计算成bool类型的值,如果表达式1的值为true,则表达式的2的值做为整个表达式的值,如果表达式1值为false,则表达式3的值数为整个表达式的值。
for循环:语法:for(表达式1;表达式2;表达式3){循环体;}for循环,一般用于已知循环次数的循环一般情况,表达式1用于定义循环变量和对循环变量赋初值表达式2 循环条件表达式3 用于改变循环变量的值执行过程:第1步 计算表达式1,转向第2步第2步 计算表达式2(循环体件),如果表达式2的值为true转向第3步,如果表达式2的值为false,转向第5步第3步 执行循环体,转向第4步第4步 执行表达式3,转向第2步,第5步 循环结束
语法:do{循环体}while{条件}执行过程: 1执行循环体执行完循环体转向2 2判断条件是否成立,如果条件为true,则转向1,如果条件为false,则转向3 3跳出循环假如循环条件一开始就不成立,对于while 循环,一次都不会执行,对于do-while 循环体会执行一次。所以do-while的循环体一般至少会被执行一次while先判断,后执行.do-while 先执行,后判断检测异常:try //检测{有可能出现的异常代码}catch{}如果try中的代码没有出异常,则不会执行catch中的代码如果try中的代码出现异常,则程序立即跳到catch中执行代码
while 循环语法:while(条件)//条件叫:循环条件{要循环执行的N条程序;//循环体}执行过程:1 先判断循环条件,如果条件为rtue,则转向2如果条件为false则转向32 执行循环体,循环体执行完后,转向 13 跳出循环,循环结束。注意:在循环体中一定要有那么一句话,改变循环条件中的某个变量的值,使循环条件终有那么一天为false
switch-case语句:语法:switch(表达式){case 值1:语句块1;break;case 值2:话句块2;break;default:语句块3;break; }执行过程:首先计算表达式,然后根据计算结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出switch-case,如果所有的case值都不匹配,那么有default则执行default结束,如果没有default,则跳出switch-case,什么都不执行.
在if-else if 语句中,只有当上一个条件不成立时,才会进入下一个if语句并进行if语句后面的条件判断,一但有一个if后面的条件为true,则执行此if所带的语句(块),语句(块)执行完成后,程序跳出if-else if结构,如果所有的if条件都不成立,则如果最后有clse则执行else所带的语句,否则什么都不执行。
if的结构的基本语法:if(条件) 语句1:执行过程:首先判断条件的结果,如果条件为true,则执行语句1,如果条件为false,则跳过语句1,执行后面的语句。注意:1)if后面括号中的条件,要能计算成一个bool类型的值 2)默认情况下:if语句只能带1句话,即和if语句有关系的语句只有语句1
If-else结构语法:If(条件){语句块1}else{语句块2}执行过程:如果条件为true,则执行If带的语句块1,并且跳过else带的语句块2如果条件为false,则跳过if带的语句块1,执行else带的语句块2.上面两个语句块,根据条件结束为true或false,总要执行一个。