第三章数据类型运算符与表达式精选PPT.ppt
《第三章数据类型运算符与表达式精选PPT.ppt》由会员分享,可在线阅读,更多相关《第三章数据类型运算符与表达式精选PPT.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 数据类型运算数据类型运算符与表达式符与表达式第1页,本讲稿共69页内容提要:内容提要:C#的主要数据类型以及类型标识符的主要数据类型以及类型标识符数据类型的转换数据类型的转换常量和变量、变量的赋值常量和变量、变量的赋值C#常用的运算符常用的运算符目的要求:目的要求:掌握掌握C#的主要数据类型、常量和变量、变量的赋值的主要数据类型、常量和变量、变量的赋值掌握掌握C#常用的各类运算符常用的各类运算符重点难点:重点难点:类型转换、常量和变量、算术运算符类型转换、常量和变量、算术运算符(+、-)、复合赋值运算、复合赋值运算符、逻辑运算符、条件运算符符、逻辑运算符、条件运算符第2页,本讲稿
2、共69页3.1 数据类型数据类型数据类型数据类型 C#C#中数据类型主要分为两大类:值类型和引用类中数据类型主要分为两大类:值类型和引用类中数据类型主要分为两大类:值类型和引用类中数据类型主要分为两大类:值类型和引用类型。这里我们先讲解这两种类型,然后再讨论数据类型。这里我们先讲解这两种类型,然后再讨论数据类型。这里我们先讲解这两种类型,然后再讨论数据类型。这里我们先讲解这两种类型,然后再讨论数据类型之间的转换。型之间的转换。型之间的转换。型之间的转换。3.1.1 3.1.1 值类型值类型值类型值类型 C#C#中值类型包括三种:简单类型、结构类型和枚中值类型包括三种:简单类型、结构类型和枚中值
3、类型包括三种:简单类型、结构类型和枚中值类型包括三种:简单类型、结构类型和枚举类型。不同的类型是不同数据的集合,不同的类型举类型。不同的类型是不同数据的集合,不同的类型举类型。不同的类型是不同数据的集合,不同的类型举类型。不同的类型是不同数据的集合,不同的类型在在在在C#C#中用不同的类型标识符来表示。中用不同的类型标识符来表示。中用不同的类型标识符来表示。中用不同的类型标识符来表示。简单类型包括整数类型、浮点类型、小数类型、简单类型包括整数类型、浮点类型、小数类型、简单类型包括整数类型、浮点类型、小数类型、简单类型包括整数类型、浮点类型、小数类型、字符类型和布尔类型等。字符类型和布尔类型等。
4、字符类型和布尔类型等。字符类型和布尔类型等。第3页,本讲稿共69页1整数类型整数类型整整数数类类型型的的数数据据值值只只能能是是整整数数,计计算算机机语语言言所所提提供供的的数数据类型有一定的范围。据类型有一定的范围。类型标识符类型标识符类型标识符类型标识符描述描述描述描述可表示的数值范围可表示的数值范围可表示的数值范围可表示的数值范围sbytesbyte8 8位有符号整数位有符号整数位有符号整数位有符号整数-128 +127-128 +127bytebyte8 8位无符号整数位无符号整数位无符号整数位无符号整数0 2550 255shortshort1616位有符号整数位有符号整数位有符号整
5、数位有符号整数-32768 +32767-32768 +32767ushortushort1616位无符号整数位无符号整数位无符号整数位无符号整数 0 655350 65535intint3232位有符号整数位有符号整数位有符号整数位有符号整数-2147483648 +2147483647-2147483648 +2147483647uintuint3232位无符号整数位无符号整数位无符号整数位无符号整数0 20 23232-1-1longlong6464位有符号整数位有符号整数位有符号整数位有符号整数-9223372036854775805 +9223372036854775807-9223
6、372036854775805 +9223372036854775807ulongulong6464位无符号整数位无符号整数位无符号整数位无符号整数0 20 26464-1-1第4页,本讲稿共69页2.浮点类型浮点类型浮点类型的数据包含两种:浮点类型的数据包含两种:单精度浮点型(单精度浮点型(float)和)和双精度浮点型(双精度浮点型(double),),其区别在于取值范围和精度的其区别在于取值范围和精度的不同。不同。float类型是类型是32位宽,位宽,double类型是类型是64位宽。位宽。单精度:取值范围在单精度:取值范围在+1.510-453.41038之间,精度为之间,精度为7位数
7、。位数。双精度:取值范围为双精度:取值范围为+5.0-3241.710308之间,精度为之间,精度为1516位数。位数。第5页,本讲稿共69页3小数类型小数类型小小数数类类型型(decimal)占占用用16个个字字节节(128位位),主主要要为为了了满足需要高精度的财务和金融计算机领域。满足需要高精度的财务和金融计算机领域。小数类型数据的取值范围和精度如下:小数类型数据的取值范围和精度如下:取值范围在取值范围在+1.010-287.91028之间,精度为之间,精度为29位数。位数。注注意意:小小数数类类型型数数据据的的后后面面必必须须跟跟m或或者者M后后缀缀来来表表示示它它是是decimal类
8、类型型的的,如如3.14m、0.28m等等,否否则则就就会会被被解解释释成成标标准准的浮点类型数据,导致数据类型不匹配。的浮点类型数据,导致数据类型不匹配。第6页,本讲稿共69页例:例:138f代表代表float类型的数值类型的数值138.0518u代表代表uint类型的数值类型的数值51836897123ul代表代表ulong类型的数值类型的数值3689712322.1m代表代表decimal类型的数值类型的数值22.112.68d代表代表double类型的数值类型的数值12.6836代表代表int类型的数值类型的数值36第7页,本讲稿共69页刚刚开开始始学学习习,不不可可能能一一下下子子掌
9、掌握握这这么么多多数数值值类类型型,先先牢牢记以下几种:记以下几种:int型型:凡是要表示带符号的整数时,先考虑使用:凡是要表示带符号的整数时,先考虑使用int型;型;uint型型:凡是需要不带符号的整数时,先考虑使用:凡是需要不带符号的整数时,先考虑使用uint型;型;double型:凡是需要做科学计算,并且精度要求不是很高型:凡是需要做科学计算,并且精度要求不是很高时,考虑使用时,考虑使用double型。型。第8页,本讲稿共69页4.字符类型字符类型字符类型的类型标识符是字符类型的类型标识符是char。凡是在单引号中的一个字符,就是一个字符常数,凡是在单引号中的一个字符,就是一个字符常数,
10、如:如:你你、A、?、6、2注注意意:在在表表示示一一个个字字符符常常数数时时,单单引引号号内内的的有有效效字字符符数数量量必必须须且且只只能能是是一一个个,并并且且不不能能是是单单引引号号或或者者反反斜斜杠杠()。)。第9页,本讲稿共69页为为了了表表示示单单引引号号和和反反斜斜杠杠等等特特殊殊的的字字符符常常数数,C#提提供了转义符。供了转义符。转义符转义符字符名称字符名称单引号单引号双引号双引号反斜杠反斜杠0空字符(空字符(Null)a发出一个警告发出一个警告b倒退一个字符倒退一个字符f换页换页n新的一行新的一行r换行并移到同一行的最前面换行并移到同一行的最前面t水平方向的水平方向的Ta
11、bv垂直方向的垂直方向的TabC#常用的转义符常用的转义符第10页,本讲稿共69页如如Console.WriteLine(“Hello,”+”+”打印出单引号打印出单引号“+”“);例例:usingSystem;classStrDemostaticvoidMain()Console.WriteLine(“FirstLinenSecondLine”);Console.WriteLine(“AtBtC”);Console.WriteLine(“DtEtF”);第11页,本讲稿共69页5布尔类型布尔类型布尔类型的类型标识符是布尔类型的类型标识符是bool。布布尔尔类类型型常常数数只只有有两两种种值值
12、:true(代代表表“真真”)和和false(代表(代表“假假”)。)。布尔类型数据主要应用在流程控制中。布尔类型数据主要应用在流程控制中。例:例:boolb=53;/b的值为的值为true;b=false;第12页,本讲稿共69页3.1.2引用类型引用类型1.object类类object类类是是系系统统提提供供的的基基类类型型,是是所所有有类类型型的的基基类类,C#中中所有的类型都直接或间接派生于对象类型。所有的类型都直接或间接派生于对象类型。对于任一个对于任一个object变量,均可以赋以任何类型的值。变量,均可以赋以任何类型的值。doubled=3.14;objectobj1;obj1=
13、d;obj1=k;对于对于object类型的变量,声明必须使用类型的变量,声明必须使用object关键字。关键字。第13页,本讲稿共69页2.string类类一个字符串是被双引号包含的一系列字符。一个字符串是被双引号包含的一系列字符。string类是专门用于对字符串进行操作的。类是专门用于对字符串进行操作的。如:如:stringstr1=中国,;中国,;stringstr2=你好!;你好!;stringstr3=str1+str2;/这相当于这相当于str3=中国,你好!中国,你好!charc=str30;/取出取出str3的第一个字符,即的第一个字符,即“中中”字。字。第14页,本讲稿共69
14、页C#支持两种形式的字符串常数。支持两种形式的字符串常数。(1)常规字符串常数)常规字符串常数如:如:“thisisatest”“C#程序设计教程程序设计教程”例:例:usingSystem;classStrDemostaticvoidMain()Console.WriteLine(First0linenSecond0line);Console.WriteLine(你好你好a);Console.WriteLine(“1“1t2t3);Console.WriteLine(“*t*t*”);第15页,本讲稿共69页例:例:usingSystem;classStringDemopublicstati
15、cvoidMain()stringstr1=“Astring”;stringstr2=Anotherstring.;Console.WriteLine(“0n1”,str1,str2);运行结果如下:运行结果如下:第16页,本讲稿共69页(2)逐字字符串常数)逐字字符串常数逐逐字字字字符符串串常常数数以以开开头头,后后跟跟一一对对双双引引号号,在在双双引引号号中中放放入字符。如:入字符。如:“电子高专电子高专”“Thisisabook.”逐字字符串常数同常规字符串常数的区别逐字字符串常数同常规字符串常数的区别:在在逐逐字字字字符符串串常常数数的的双双引引号号中中,每每个个字字符符都都代代表表其
16、其最最原原始始的的意意义义,在逐字字符串常数中没有转义字符。在逐字字符串常数中没有转义字符。注注意意:如如果果要要包包含含双双引引号号(),就就必必须须在在一一行行中中使使用用两两个个双引号()。双引号()。第17页,本讲稿共69页stringstr1;/定义字符串类型定义字符串类型stringstr2=hello,world;/规则字符串常数:规则字符串常数:hello,worldstringstr3=hello,world;/逐字字符串常数:逐字字符串常数:hello,worldstringstr4=hellotworld;/helloworldstringstr5=hellotworld
17、;/hellotworldstringstr6=“Hesaid Hello toyou;/Hesaid Hello toyoustringstr7=“HesaidHellotoyou;/Hesaid Hello toyou第18页,本讲稿共69页例:例:usingSystem;classTeststaticvoidMain()Console.WriteLine(Thisisaverbatimstringliteralthatspansseverallines.);Console.WriteLine(Hereissometabbedoutput:12345678);Console.WriteLi
18、ne(Programmerssay,IlikeC#);运行结果如下:运行结果如下:第19页,本讲稿共69页3.1.3类型转换类型转换数据类型在一定条件下是可以相互转换的。数据类型在一定条件下是可以相互转换的。C#允许使用两种转换的方式:隐式转换和显式转换。允许使用两种转换的方式:隐式转换和显式转换。1.隐式转换隐式转换隐式转换是系统默认的、不需要加以声明就可以进行的隐式转换是系统默认的、不需要加以声明就可以进行的转换。转换。隐式数据转换的使用方法如下:隐式数据转换的使用方法如下:inti=518;/a为整型数据为整型数据longb=i;/b为长整型数据为长整型数据floatf=i;/f为单精度
19、浮点型数据为单精度浮点型数据第20页,本讲稿共69页2显式转换显式转换显式转换又叫显式转换又叫强制类型转换强制类型转换,显式转换要明确指定转换类型。,显式转换要明确指定转换类型。显式转换格式:显式转换格式:(类型标识符类型标识符)表达式表达式意义为:意义为:将表达式的值的类型转换为类型标识符的类型。将表达式的值的类型转换为类型标识符的类型。比如:(比如:(char)65/把把int类型的类型的65转换成转换成char类型类型注意:注意:(1)显式转换可能会导致错误。)显式转换可能会导致错误。(2)对于将)对于将float,double,decimal转换为整数,将通过舍转换为整数,将通过舍入得
20、到最接近的整型值,如果这个整型值超出目标入得到最接近的整型值,如果这个整型值超出目标域,则出现转换异常。域,则出现转换异常。比如:比如:(int)6.28m/转换的结果为转换的结果为6(int)3e25f/将产生溢出错误将产生溢出错误第21页,本讲稿共69页3.1.4装箱和拆箱装箱和拆箱1装箱转换装箱转换装装箱箱转转换换是是指指将将一一个个值值类类型型的的数数据据隐隐式式地地转转换换成成一一个个对对象象类类型型(object)的数据。)的数据。例如:下面的两条语句就执行了装箱转换:例如:下面的两条语句就执行了装箱转换:inti=518;objectobj=i;第22页,本讲稿共69页例:在程序
21、中执行装箱转换。例:在程序中执行装箱转换。usingSystem;classBoxingDemostaticvoidMain()Console.WriteLine(执行装箱转换:执行装箱转换:);intk=200;objectobj=k;k=300;Console.WriteLine(obj=0,obj);Console.WriteLine(k=0,k);第23页,本讲稿共69页2拆箱转换拆箱转换和和装装箱箱相相反反,拆拆箱箱转转换换是是指指将将一一个个对对象象类类型型的的数数据据显式地显式地转换成一个值类型数据。转换成一个值类型数据。例如:例如:objectobj=228;intk=(int
22、)obj;第24页,本讲稿共69页例:在程序中使用拆箱转换。例:在程序中使用拆箱转换。usingSystemclassUnboxingDemostaticvoidMain()intk=228;objectobj=k;/装箱转换装箱转换intj=(int)obj;/拆箱转换拆箱转换Console.WriteLine(k=0tobj=1tj=2,k,obj,j);该程序执行后,输出结果如下该程序执行后,输出结果如下:k=228obj=228j=228第25页,本讲稿共69页练习练习:1()是)是decimal类型数据类型数据A123LB1234C1234FD1234M2已知大写字母已知大写字母A的
23、的ASCII码是码是65,小写字母,小写字母a的的ASCII码码是是97,则十六进制字符常量,则十六进制字符常量u0042表示(表示()A字符字符aB字符字符AC字符字符bD字符字符B 第26页,本讲稿共69页3.2.1常量常量在在C#中中,常常量量在在程程序序的的运运行行过过程程中中其其值值是是不不能能改改变变的的,例例如如,数数字字100就就是是一一个个常常量量,这这样样的的常常量量一一般般被被称称作常数。作常数。声明常量的格式:声明常量的格式:const类型标识符类型标识符常量名常量名=表达式;表达式;例:例:constdoublePI=3.14159265;doubler=5.2;do
24、ubles=PI*r*r;Console.Write(“面积面积=0”,s);3.2常量与变量常量与变量第27页,本讲稿共69页常量特点:常量特点:l l在程序中,常量只能被赋予初始值。在程序中,常量只能被赋予初始值。l l定定义义常常量量时时,表表达达式式中中的的运运算算符符对对象象只只允允许许出出现现常常量量和和常数,不能有变量存在。常数,不能有变量存在。例如:例如:intb=18;constinta=26;constintk=b+10;/错误,表达式中不允许出现变量错误,表达式中不允许出现变量constintd=a+23;/正确,因为正确,因为a是常量是常量a=56;/错误,不能修改常量
25、的值错误,不能修改常量的值第28页,本讲稿共69页3.2.2变量变量变量是程序运行过程中用于存放数据的变量是程序运行过程中用于存放数据的存储单元存储单元。变量的值在程序的运行过程中可以改变。变量的值在程序的运行过程中可以改变。1变量的定义变量的定义在在定定义义变变量量时时,首首先先必必须须给给每每一一个个变变量量起起名名,称称为为变变量量名名,变量名代表变量名代表存储地址存储地址。变量的类型决定了存储在变量中的数值的类型。变量的类型决定了存储在变量中的数值的类型。变量定义格式:变量定义格式:类型标识符类型标识符变量名变量名1,变量名,变量名2,第29页,本讲稿共69页例:例:doublefsu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 数据类型运算符与表达式精选PPT 第三 数据类型 运算 表达式 精选 PPT
限制150内