传智播客C#经典入门课堂笔记-苏坤.docx

上传人:苏美尔 文档编号:6197757 上传时间:2020-09-22 格式:DOCX 页数:23 大小:1.55MB
返回 下载 相关 举报
传智播客C#经典入门课堂笔记-苏坤.docx_第1页
第1页 / 共23页
传智播客C#经典入门课堂笔记-苏坤.docx_第2页
第2页 / 共23页
传智播客C#经典入门课堂笔记-苏坤.docx_第3页
第3页 / 共23页
传智播客C#经典入门课堂笔记-苏坤.docx_第4页
第4页 / 共23页
传智播客C#经典入门课堂笔记-苏坤.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《传智播客C#经典入门课堂笔记-苏坤.docx》由会员分享,可在线阅读,更多相关《传智播客C#经典入门课堂笔记-苏坤.docx(23页珍藏版)》请在三一文库上搜索。

1、.今天学习的第一句话:Console.WriteLine(“你想显示的内容。 ”);第二句话:Console.ReadKey();当程序执行到 Console.ReadKey();时,程序会停到这里, 等待用户从键盘上键入一个键,用户键入这个键之后,程序才会继续执行。在 C#中,每一句话都必须以“分号”结束C#中的注释,什么是注释呢?对我程序进行的解释,注释是给人看的。下面的一对指示可以折叠代码。#region内容#endregionMSIL:微软中间语言 Microsoft Inter mediate Language CLR:公共语言运行时 Common Language Runtime

2、CLS公共语言规范 Common Language Specification CTS:通用类型系统 Common Type System JIT:即时编译器 Just In Time第二天课程:复习 -Console.WriteLine()可以用 CW 加 Tab 键。这样就能直接打出Console.WriteLine();变量 1:变量:变量代表着一块内存空间,我们可以通过变量名称向内存存 取数据。有变量就不需要我们记忆复杂的内存地址。向内存申请一块内存空间的语法:数据类型变量名;整数在我们 C#中的数据类型叫 intInt nuber;.Double:小数Char:字符型 只能存储一个字

3、符, 并且存储的这个字符要求用单引号引起来 String 类型:字符串,就是把 0 个或 1 个或多个字符连接起来。 字符串要求用双引号引起来。Decimal 类型:用来表示钱和货币,失精度不至于丢失。注意:在 C#开发环境中,直接写一个有小数点的数字, 这个数字是 double 类型。在一个小孩苏 idan 后面加个 mM, 就告诉编译器这是个 decimal 类型应该写成: money = 100.34m;变量的命名规则:1. 必须以“字母” _或 符号开头、2. 后面可以跟任意“字母” ,数字,下划线。注意 :1. 你起的变量名不要雨 C#系统中的关键字重复。2. 在 C#中,大小写是敏

4、感的。3. 同一个变量名不允许重复定义(先这么认为,不严谨) 。定义变量时,变量名要有意义C#变量名编码规范 -Camel命名法:首个单词的首字母小写,其余单词的首字母大写。Pascal命名规范:每一个单词第一个字母都大写。如果使用到英文单词的缩写,全部用大写。在一个方法中, 一般情况下变量只能定义一次 (先这么认为),但可以多此赋值,再次赋值时,会把变量中原有的值给覆盖掉。“ +”在 C中有两种意义:在数学中的加法运算:两边参与加法运算的数据类型为数字类型,则“;.“表示数学上的加法意义。是连接的意思:两边参与加号运算的数据,有一个是字符类型,那么这个“好就是连接的意义。在 Console.

5、WritLine(“”)中,第一个变量 /字符串中可以使用占位符。;.占位符有数字 成,数字有0 开始 号第 1 个占位符:0第 2 个占位符:1第 3 个占位符:2Console.WriteLine();有多个参数 , 出都是第一个参数中的内容,从第二个参数开始都是用来替 第一个参数中的占位符的 ,所以从第二个参数开始,要不要 出,就要看第一个参数中有没有相关的占位符。例如: Console.WriteLine( ”0我叫 ”+name,”今年 ”+age+” 了 ”); 出 果是: 今年 28 了我叫 三再学 一句 ,用于 用 从 上 入一句 。当程序 行到 面 句 ,就会 停,然后等待用

6、 从 上 入一句,按回 程序将 行。如果想得到用 入的的内容,就需要定 一个 string 型的 量,写在下面 句 前面,接收用 入的内容。Console.ReadLine();接收用 入的内容,必 定 一个字符串来 行接收。String input = Console.ReadLine(); 字符:什么 候用,当我 需要在字符串中 入一些特殊字符 ,比如:半角引号, 行,退格。就需要使用 字符。 字符是一个字符,他由一个 +一个字母来 成具有特殊意 的一个字符。常用的 字符:n 行b backspace 退格t tab 键 由多个空格 成的一个字符,具有行与行之 的 功能。表示一个 在字符串

7、前面加一个 符号有两种意 :1. 字符串中如果有 , 不再理解 符。2. 使字符串可以 行如果字符串前面加了 符号,在字符串上用 个双引号代表一个双引号。C#中,有五个算 运算符 :+-*/%他 二元运算符。要求参与运算的两个操作数的 型必 相同,并且 运算后的 果也与操作数的 型相同。在算 表达式中,如果要改 算的 先 ,用小括号。小括号可以无限制的套用,但一定要成 出 。;.发生自动转换的条件:1. 参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。当不一致时,满足下面条件时,系统自动完成类型转换。2. 两种类型兼容3. 例如: int 和 double 兼容4. 目标类型大于源类

8、型5. 例如: doubleint自动转换中,转换是不会丢失进度的。经常见到的就是,参与运算的两个操作数,一个是 int ,一个是 double, 那么 int 类型会自动转换乘 double如果一个操作数为 double 型,则整个表达式的运算结果为 double 类型。当需要丢失精度的转换(如果从 double3.14 到 int 3 的转换,会丢失 0.14 的精度)时,系统是不会帮我们自动转换的。需要我们程序员来写代码完成转换。(数据类型名)待转换的值;注意:下面的两种转换是错误的。因为强制类型转换要求待转换的类型和目标类型必须都为数字。/string age = (int)Conso

9、le.ReadLine;/int a = (int) “33”;Int 变量 =Convert.ToInt32(待转字符串 );上面语句的意义:把待转字符串转换成int 类型后赋给变量。C#中的异常捕获如何完成:Try有可能出现错误的代码写在这里;.Catch出错后的处理上面的程序如何执行:如果 try 中的代码没有出错, 则程序正常运行 try 中的内容后, 不会执行 catch 中的内容。如果 try 中的代码一旦出错, 程序立即跳出 catch 中去执行代码, 那么 try 的出错代码后面的代码不再执行。Age+ 自加一有前加和后加Age-自减一有前减和后减例如:Int age = 18

10、 ;Int sum = age + -10;上面代码 age 是后加。所以在进行语句运算时,age+取 age 原值参与运算,所以 sum=8Int age = 18 ;Int sum = +age -10;上面 age 是前加,所以在进行语法运算时 +age 取 age 加一后的新值参与运算,所以 sum=9总之,不管是 +age还是,进过运算后, agede 值都进行了 +1 运算。Int age = 18 ;Int sum = age + -10;相当于:Int age =18;Int sum = age -10Age = age + 1Int age = 18 ;Int sum = +

11、age -10;.相当于:Int age = 18;Age = age + 1;Int sum = age -10;在 C#中,一般情况下,一元运算符 + -大于二元运算符 +-。复合运算符:Age+=4 理解为在 Age 的原值的基础上加 4;在 C#中,有 6 个关系运算符,用于比较两个事物之间的关系。 = != = 5 & +b1;( 2) Bool result = +a5 | +b1;当逻辑与第一为假时第二个不再检查真假,直接输出false。第二个不再运算。当逻辑或第一个为真时。第二个表达式不再检查真假。直接输出 true 。第二个数不再运算。;.If 结构的基本语法:If(条件 )

12、1.语句;true ,则执行语句。如果条执行过程:首先判断条件的结果,如果条件为件为 false,则跳过语句 1.执行后面的语句。注意: 1.if 后面的括号中的条件,要能计算成一个bool 类型的值。3. 默认情况下, if 语句只能待一句话。 即和 if 语句有关系的语句, 只有语句 1.执行过程:如果条件为 false,那么将跳过 if 所带的语句块中的所有语句。要求:我们在写程序时,哪怕 if 语句只带一句话,也要把他写在大括号中。If-else 结构语法:If(条件)语句 1;Else语句 2;执行过程:如果条件为 true ,则执行 if 带的语句块 1,并且跳过 else 带的语

13、句块2.如果条件为 false,则跳过 if 带的语句块 1,执行else 带的语句块 2.true 或 false,总要执行一个。上面两个语句块,根据条件结束为在 if-else if 语句中。只有当上一个条件不成立时,才会进入下一个 if 语句并进行 if 语句后面的条件判断。一旦有一个 if 后面的条件为 true,;.则执行 if 所带的语句(块),语句(块)执行完成后,程序跳出if-else if结构。如果所有的if 条件都不成立,则如果最后有else 则执行 else 所带的语句,否则什么都不执行。注意:代码自动排版对齐快捷键:Ctrl +k +fElse 离它最近的 if 是一对

14、Switch-case 语句:语法:Switch(表达式)Case 值 1:语句块 1;Break;Case 值 2:语句块 2;Break;Default:语句块 3;Break;执行过程:首先计算表达式, 然后根据计算结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,知道break 语句跳出switch-case。如果所有的 case值都不匹配,那么有 default 则执行 default后面的语句,知道break 结束。如果没有 default ,则跳出 switch-case,什么都不执行。注意:匹配时和 default 的位置没有关系,只和值有关系。练习:;.If-

15、else if 与 switch 的比较相同点:都可以实现多分枝结构不同点: switch:一般只能用于等值比较If-else if:可以处理范围While 循环的语法:While(条件 )/ 循环体要循环执行的 N 条程序;/ 循环体执行过程:先判断循环条件,如果条件为 true ,则转向 2;如果条件为 false,则转向 3。;.语法:Do循环体; While(条件);执行过程:1 执行循环体,执行完循环转向22 判断条件是否成立, 如果条件为 true ,则转向 1。如果条件为 false,则转向 3.3 跳出循环,循环结束。假如循环条件一开始就不成立,对于while 循环,一次都不会

16、执行。对于 do-while 的循环体一般至少会被执行一次。While 先判断,后执行。Do-while 先执行,后判断。;.For 循环:语法:For(表达式 1;表达式 2;表达式 3;)循环体;For 循环,一般用于已知循环次数的循环。一般情况:表达式 1:用于定义循环变量和对循环变量赋初值。表达式 2:循环条件表达式 3:用于改变循环变量的值。执行过程:第一步:计算表达式1,转向第二部第二步:计算表达2(循环条件),如果表达式 2 的值为 true 转向第3 部。如果表达式2 的值为 false,转向第 5 步.第三步:执行循环体,转向第4 步。第四步:执行表达式3.转向第 4 步。第

17、五步:循环结束。练习:水仙花数是一个三位数,设cba.A*a*a+b*b*b+c*c*c =cba例如: 153=1*1*1+5*5*5+3*3*3;.Break:1) 可以用于 switch-case 判断中,用于跳出 switch2) 用在循环中,用于立即跳出(终止)循环。注意:用于循环中时,跳出的是 break 所在的循环。Continue:用于循环中,程序一旦执行到 continue 语句,立即结束本次循环(就是不再执行循环体中 continue 下面的语句了),直接进行下一次循环。 ( do-while/while直接进行下一次循环条件的判断,如果条件成立,则再次进入循环。对于 fo

18、r 循环,先执行表达式 3,再判断循环条件是否成功! );.三元表达式:表 1?表 2:表 3:执行过程:首先计算表达式 1,表达式 1 应该是一个能够计算成 bool 类型的值,如果表 1 的值为 true,则表达式 2 的值作为整个表达式的值,如果表 1 的值为false,则表达式 3 的值作为整个表达式的值。表达式 2 和表达式 3 的类型一定要相同(相兼容) 。例如: ab? a:b;常量:语法:Const 类型 常量名= 常量值在定义时赋值,在其他地方不允许赋值。枚举:让我们定义一种枚举类型并且在定义这种类型时我们要指定这个类型的所有值。语法:Enum 自己起的类型名称值 1,值 2

19、,值 3。值 N枚举的定义,一般和类定义在同一个级别。这样,在同一个命名空间下的所有的所有的类就都可以使用这个枚举了。 (在方法中也可以,在类中也可以。 )枚举的作用:1) 限制用户不能随意赋值,只能在定义枚举时例举的值中选择。2) 不需要死记没一个值是什么,只需要选择相应的值。注意:定义枚举时,值不能为 int 类型。枚举类型的变量都可以强制转换成一个 int 类型。枚举的值在定义时是有一个默认编号的,编号从0 开始。如何把一个 字符串转换成枚举类型:(自枚) (enum.parse(typeof(自枚 ),“待转换的字符串” ) );为什么要用结构:1) 比如我们上课讲的为了存储一个人的信

20、息,要声明一组变量。当我们要存储 N 个人的信息时,就要声明 N 组变量,麻烦。2) 存储一个人信息的这几个变量间没有关系,容易记乱。;.语法:访问修饰符(目前用public )struct 结构名(必须加 public )定义结构成员;例如:public struct person/ 定义一个名称叫person 的结构。Public string name;/ 结构成员Public geder sex;/ 结构成员Public int age;/ 结构成员定义好一个结构后,就可以直接声明相应的变量了。声明好变量后,通过 变量名 .成员名来访问结构的成员。计算机中最小单位“位“,bit 比特就

21、把 8 个二进制位分成一组, 那么 8 个二进制位叫做字节byteB计算机能够处理的最小单位。1 KB =1024B 1MB=1024KB 1GB=1024MB 1TB=1024GBBps 传输速度 bit per second数组:可以帮我们一次声明多个同类型的变量。这些变量在内存中是连续存储的。;.数组声明语法:数据类型【】数组名 =new 数据类型 数组长度 ;例如:int score =new 5;就声明了一个长度为5 的数组,数组叫score通俗点说:就是声明了一个数组,里面包含5 个 int 类型的变量。数组名叫 score 里面的 5 个 int 类型的变量叫做:数组的元素如何访

22、问数组:通过下标(索引)来访问数组。比如,我们要向第0 个元素赋一个 3.可以这样写:Score0 = 3;Int 类型数组一旦声明,里面的每一个元素被初始化成0 通过 数组名。Length 可以获得数组的长度Console.Clear(); 清屏Int sum = 0;Int score = new int 10;/ 对数组中元素进行赋值For(int I = 0; iscore.Length; i+)Console.WriteLine(“请输入第 0个人的成绩: ”, i+1); Scorei = convert .ToInt32(Console.ReadLine();/sum= sum+

23、scorei;/ 通过一个循环,求一个数组中所有元素的和。For(int I = 0; iscore.Length; i+)Sum += scorei;Console.Clear();Console.WriterLine(“0个人的平均成绩为:1”,score.Length, sum/ score.Length)/ 输出数组中的每一个元素的值For(int I = 0 ; I score.Length; i+)Console.WriterLine(“第 0个学生的成绩为 1分 ”,i+1,scorei);.冒泡排序:让数组中的元素两两比较,(第 i 个与第 i+1 个比较),进过 n(i-1)

24、遍两两比较,数组中的元素能按照我们预期的规律排序。要从大到小排序,我们进行两两比较的时候用10,20, 30,40,50, 60,70 原始数据 7 个元素20,30, 40,50,60, 70,10 第一趟比较 6 次。30,40, 50,60,70,20,10 第二趟比较 5 次。40,50, 60,70,30,20,10 第三趟比较 4 次。50,60, 70,40,30,20,10 第四趟比较 3 次。60,70, 50,40,30,20,10 第五趟比较 2 次。70,60, 50,40,30,20,10 第六趟比较 1 次。也就是 n 个数需要排 n-1 趟第 t 趟比较的次数为:

25、 N-t 次For(int i=0;inumbers.length-1;i+)/ 外层控制趟数For(int j =0;j)交换方法:功能:用来复用代码的。 当我们在一个程序反复写的同样的代码。 那一般情况下,我们可以把需要重复写的代码定义在一个方法中。用的时候只需要调用就行了。定义方法的语法:;.Public访问修饰符 static 返回值类型方法名( 参数 )方法体;注意:1.方法一般情况下,方法一般要定义在类(class)中。2.如果方法没有返回值,则返回值类型写void。3.如果方法中没有参数,()不能省略。方法的调用:如果是静态方法(有 static 修饰的)则使用 类名 .方法名(

26、)在类中调用本调用的方法,可以只写方法() ;Return:立即退出本方法变量的作用域:在方法中定义的变量称为局部变量, 其作用域从定义开始, 到其所在的大括号结束为止。当被调用者想得到调用者的方法中的变量时, 则可以让调用者通过参数的形式给被调用者。例子:Public static void test(int number)/ 形参在方法名后面的括号内定义变量, 叫做定义这个方法的参数。 这里定义的变量用于接收调用者传过来的数据。注意:如果一个方法一旦有参数, 那么调用者就必须传参数, 并且传参数的个数与对应位置上的类型必须一致。当调用者想访问我们方法中的变量时,可以通过返回值返回。例如:S

27、tring s= console.ReadLine()Int i= Convert.ToInt32(“22”)为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值。只要在方法中返回了值, 那么在调用方法中, 前面就应该用一个变量来接收方法的返回值。注意:一个方法只能有一个返回值。一旦一个方法有返回值, 那么在这个方法的体中就必须通过return 语句返回一个值,并且这个值要与返回值的类型是相同的。语法:return 值;当形参是数组的时候,我们传数组名。;.一个变量一旦定义在方法外, 类的里面, 就叫做类的 字段。这个变量就可以被本类的所有的方法所访问。但是哟呵注意,静态方法

28、只能访问静态字段。由 const 修饰的常量不能定义静态的。什么叫方法重载:一般在同一个类中, 方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载。通过参数来反值:;.如上代码:实现步骤:1 在方法的参数类型前加 out, 那么传参数的时候, 也必须在 number 前加 out 表明这个参数不是传入的,而是用来传出值的。2 如果参数是以 out 形式传入的,那么在传入前可以不赋初值。3 在方法中对于由out 修饰的参数,必须赋值,并且必须在使用前赋值。练习:写一个 MyTryParse 方法,要求用户传入一个字符串, 如果这个字符串能转成 int 类型,则方法返回 true ,并且转换后的 int 类型数据通过方法的参数传出。如果字符串不能转换成 int 类型,则方法返回 false,;.那么 out 传出的参数将没有意义,在方法中随意赋个值就行了。Out 用于传出值;在方法中必须对out 修饰的传出值进行赋值。Ref 可以理解成是双向的,既可以传入,又可以传出 。(像 C 语言中的指针)在传参的过程中, 如果参数有 out 或 ref 修饰的话,那么改变方法中的参数变量的值,调用者方法中变量的值也会相应改变。;.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1