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