《c#编程基础》ppt课件

上传人:tian****1990 文档编号:74708283 上传时间:2019-01-29 格式:PPT 页数:78 大小:1.93MB
返回 下载 相关 举报
《c#编程基础》ppt课件_第1页
第1页 / 共78页
《c#编程基础》ppt课件_第2页
第2页 / 共78页
《c#编程基础》ppt课件_第3页
第3页 / 共78页
《c#编程基础》ppt课件_第4页
第4页 / 共78页
《c#编程基础》ppt课件_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《《c#编程基础》ppt课件》由会员分享,可在线阅读,更多相关《《c#编程基础》ppt课件(78页珍藏版)》请在金锄头文库上搜索。

1、第二章 C#编程基础,本章学习目标,熟悉C#基本数据类型 掌握选择、循环、跳转语句的使用方法 掌握定义和初始化数组的方法 掌握访问数组元素的方法,第二章 C#编程基础,2.1 基本数据类型 2.2 常量与变量 2.3 表达式 2.4 选择语句 2.5 循环语句 2.6 跳转语句 2.7 数组,2.1 基本数据类型,2.1.1 值类型 2.1.2 引用类型 2.1.3 值类型与引用类型的关系,2.1 基本数据类型,简单类型 枚举类型 结构类型,值类型,引用类型,类 接口 数组 委托,两者有很大区别,2.1 基本数据类型,值类型,引用类型,内存,. . .,int num; num=1024;,n

2、um,. . .,string str; str=“abc”;,str,内存,2.1.1 值类型,所谓值类型就是一个包含实际数据的量。即当定义一个值类型的变量时,C#会根据它所声明的类型,以堆栈方式分配一块大小相适应的存储区域给这个变量,随后对这个变量的读或写操作就直接在这块内存区域进行。,2.1.1 值类型,2.1.1 值类型,枚举类型: 由用户定义的一组有限个整型符号常量。 定义枚举类型 枚举成员赋值 声明枚举变量 访问枚举变量,2.1.1 值类型枚举类型,定义枚举类型 enum 枚举名:数据类型 /枚举成员 数据类型 除了char之外的整数类型。 默认为32位整数类型,第一个枚举值为0,

3、第二个为1,依次加1。 枚举成员 枚举成员均为符号常量,常量名之间用逗号分隔。,2.1.1 值类型枚举类型,定义枚举类型实例 enum Weekdays Mon,Tues,Wed,Thur,Fri,Sat,Sun /Mon=0,Tues=1,Wed=2,Thur=3,Fri=4,Sat=5,Sun=6 ,2.1.1 值类型枚举类型,枚举成员赋值 (1)修改枚举的默认值 (2)修改一个或多个枚举成员的值 (3)为多个枚举成员赋同样的值,2.1.1 值类型枚举类型,枚举成员赋值 (1)修改枚举的默认值 public enum Weekdays Mon=1,Tues,Wed,Thur,Fri,Sat

4、,Sun ,枚举Weekdays的第一个枚举值为1,其后依次加1.,2.1.1 值类型枚举类型,枚举成员赋值 (2)修改一个或多个枚举成员的值 public enum Weekdays Mon,Tues=-1,Wed,Thur,Fri=3,Sat,Sun ,第一个被赋值的枚举成员之前的枚举成员,按默认方式赋值;如为某个枚举成员赋值,则其后的枚举成员值在此基础上依次加1.,2.1.1 值类型枚举类型,枚举成员赋值 (3)为多个枚举成员赋同样的值 public enum Weekdays Mon,Tues=3,Wed,Thur,Fri=Mon,Sat,Sun ,被赋值枚举成员一定要位于赋值的枚举成

5、员之后!,2.1.1 值类型枚举类型,声明枚举变量 格式:枚举名 变量名;,2.1.1 值类型枚举类型,访问枚举变量 枚举变量的值必须是枚举成员,枚举成员需要用枚举名引导。 例:enum Color red,green,blue Color c=Color.red; int i=(int)c; 或: int i=(int)Color.red;,2.1.2 引用类型,2.1.2 引用类型,一个引用类型的变量不存储它们所代表的实际数据,而是存储实际数据的引用。 引用类型分两步创建:首先在堆栈上创建一个引用变量,然后在堆上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给引用变量。,2.1.2

6、 引用类型,例如: string s1, s2; s1=“ABCD“; s2 = s1; 其中,s1,s2是指向字符串的引用变量,s1的值是字符串“ABCD”存放在内存的地址,这就是对字符串的引用,两个引用型变量之间的赋值,使得s2、s1都是对“ABCD”的引用。如图所解。,堆内存,栈内存,ABCD,s1,s2,2.1.3 值类型与引用类型关系,可以把值类型与引用类型的值赋给object类型变量,C#用“装箱”和“拆箱”来实现值类型与引用类型之间的转换。 装箱就是将值类型包装成引用类型的处理过程。当一个值类型被要求转换成一个object对象时,装箱操作自动进行,它首先创建一个对象实例,然后把值

7、类型的值复制到这个对象实例,最后由object对象引用这个对象实例。 拆箱操作与装箱相反,它是将一个object类型转换成值类型。首先检查由object引用的对象实例值类型的包装值,然后把实例中的值拷贝到值类型的变量中。,2.1.3 值类型与引用类型关系,装箱操作实例: using System; class Demo public static void Main ( ) int x = 123; object obj1=x; / 装箱操作 x = x+100; / 改变x的值obj1的值并不会随之改变 Console.WriteLine (“ x= 0“ , x ); / x=223 Co

8、nsole.WriteLine (“ obj1= 0“ , obj1 );/obj1=123 ,2.1.3 值类型与引用类型关系,实例的装箱操作说明如图所示。,2.1.3 值类型与引用类型关系,拆箱操作实例: using System; class Demo public static void Main ( ) int x = 123, y; object obj1=x; / 装箱操作 x = x+100; / 改变x的值,此时obj1的值并不会随之改变 y = (int) obj1; / 拆箱操作,必须进行强制类型转换 Console.WriteLine (“ x= 0“ , x ); /

9、 x=223 Console.WriteLine (“ obj1= 0“ , obj1 ); / obj1=123 ,2.2 常量与变量,2.2 常量与变量,变量的声明 数据类型 变量名 int age; 变量名标示符命名规则 只能使用数字、字母、下划线 标识符首字母必须是字母、下划线 不能使用关键字作为标示符 C#区分大小写 变量命名规范 不要用下划线作为变量名首字符 不要仅靠大小写区分两个变量 小写字母开头 如果多个单词命名变量名,从第二个单词开始,每个单词首字母大写。例如:int averageAge;,2.2 常量与变量,变量初始化,int a=2; /定义a为整型变量,初值为2 ch

10、ar b= A; /定义b为字符型变量,初值为A double x=2.1234; /定义x为实型变量,初值为2.1234 也可对被定义的变量的部分变量进行初始化。如 int u,v=100,w; /定义u,v,w为整型变量,v的初值为100,float y=1.1; /错误,因为1.1默认为double类型,范围比float大,因此double类型向float类型转化时会报错。 如需转化:float y=(float)1.1或float y=1.1f,2.3 表达式,算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符,2.3 表达式,算术运算符,关系运算符,关系运算符,逻辑

11、运算符,逻辑运算符,&:短路与(当第一个操作数为假时,则表达式的结果为假, 不再计算第二个操作数) |:短路或(当第一个操作数为真时,则表达式的结果为假, 不再计算第二个操作数),位运算符,位运算符,赋值运算符,赋值运算符,条件运算符,条件运算符 表达式1 ?表达式2 :表达式3 如果“表达式1”的值为非0(真), 则条件表达式的运算结果等于“表达式2”的值,否则,运算结果等于“表达式3”的值。 例如:int i=2,j=4;max; max=ij?i:j; /max的值为4,表达式中的类型转换,在表达式中,操作数的数据类型可以不同,只要相互兼容即可。当表达式中混合了几种不同的数据类型时,C#

12、会基于运算的顺序将它们自动转换成同一类型。 隐式转换:数值范围小的类型数值范围大的类型,无符号整数类型 有符号整数类型(float不能转换为decimal),2.4 选择语句,if ( ) if ( ) else if ( ) else (else语句与最近的if匹配) switch,条件判断嵌套 if,机票预定:输出实际机票价格 原价为4000元 5-10月为旺季,头等舱打9折,经济舱打7.5折 其他时间为淡季,头等舱打6折,经济舱打3折,需要两次判断 首先判断是旺季还是淡季 再判断头等舱还是经济舱,嵌套 if 实现,条件判断嵌套 if,if (month = 5 else / 淡季 / ,

13、关键代码,嵌入的一对 ifelse,switch 示例,从键盘输入学生的百分制成绩,换算成等级成绩 90-100:A,80-89:B,70-79:C,60-69:D,其余:E,switch 示例,Console.Write(“输入学生百分制成绩:”); int grade =int.Parse(Console.ReadLine(); switch ( grade/10 ) case 9: case 10: Console.WriteLine( “你的成绩为:A”); break; case 8: Console.WriteLine( “你的成绩为:B”); break; case 7: Con

14、sole.WriteLine( “你的成绩为:C”); break; case 6: Console.WriteLine( “你的成绩为:D”); break; default: Console.WriteLine ( “你的成绩为:E”); break; ,条件判断的表达式类型 整型或字符串 break 语句的要求: 每个 case 都有 break default 也要有 break 特殊情况:,case 中没有其他语句时, 不需要break语句,2.4 循环语句,While语句 do-while语句 for 语句,2.4 循环语句,用不同的循环语句求,While语句,using Syst

15、em; public class Sum100 public static void Main ( ) int Sum , i ; Sum=0; i=1; while (i=100) Sum+=i; i+; Console.WriteLine (“Sum is “ + Sum); ,do-while语句,using System; public class Sum100 public static void Main ( ) int sum , i ; sum=0; i=1; do sum+=i; i+; while (i=100) Console.WriteLine (“sum is “ + sum); ,for 语句,using System; public class Sum100 public static void Main ( ) int sum , i ; for (sum=0, i=1; i=100; i+) sum+=i; Console.WriteLine (“sum is “ + sum); for (sum=0, i=1; i=100; sum+=i, i+) ; / 循环体是一空语句 Console.WriteLine (“sum is “ + sum); ,2.6 跳转语句,continue语句 br

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号