第2讲C程序设计基础(一)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2讲C程序设计基础(一)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 课件
- 资源描述:
-
1、第二讲第二讲 C#C#程序设计基础(一)程序设计基础(一)n掌握掌握C#的数据类型及常用运算符和优先级。的数据类型及常用运算符和优先级。n了解控制流程的两种方法。了解控制流程的两种方法。n理解和掌握布尔逻辑的基本概念及布尔运算符的理解和掌握布尔逻辑的基本概念及布尔运算符的用法。用法。n掌握分支、循环流程控制语句的使用方法。掌握分支、循环流程控制语句的使用方法。n重点和难点:重点和难点:C#的数据类型及常用运算符、布尔的数据类型及常用运算符、布尔运算符的用法、分支结构及循环结构程序设计方运算符的用法、分支结构及循环结构程序设计方法。法。第二讲第二讲 C#C#程序设计基础(一)程序设计基础(一)n
2、2.1 C#数据类型数据类型n2.2 C#运算符与优先级运算符与优先级n2.3 C#流程控制语句流程控制语句2.1 C#2.1 C#数据类型数据类型n2.1.1值类型值类型 n2.1.2引用类型引用类型 n2.1.3值类型间的数据转换值类型间的数据转换 C#C#数据类型数据类型nC#数据类型分为两类:值类型和引用类型。数据类型分为两类:值类型和引用类型。nC#中把基本数据类型规定为值类型,而把一些较中把基本数据类型规定为值类型,而把一些较大的类型规定为引用类型,这种设计方式是为了大的类型规定为引用类型,这种设计方式是为了得到最佳的性能。得到最佳的性能。n值类型包括整型数类型、布尔类型、浮点类型
3、和值类型包括整型数类型、布尔类型、浮点类型和小数型、结构类型和枚举类型。小数型、结构类型和枚举类型。n引用类型包括类类型、数组、接口类型和委托类引用类型包括类类型、数组、接口类型和委托类型、字符串类型型、字符串类型。值类型变量和引用类型变量的主要区别值类型变量和引用类型变量的主要区别n存储位置存储位置值类型变量(定长)直接把变量的值保存在堆栈中。值类型变量(定长)直接把变量的值保存在堆栈中。引用类型的变量(变长)把实际数据的地址保存在堆引用类型的变量(变长)把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。栈中,而实际数据则保存在堆中。n赋值操作赋值操作值类型变量在赋值时使用了内存复制的方
4、式,一个变值类型变量在赋值时使用了内存复制的方式,一个变量的操作不会影响到其他变量。量的操作不会影响到其他变量。引用类型变量在赋值时,直接传递的是地址,不存在引用类型变量在赋值时,直接传递的是地址,不存在内存数据的复制,没有性能损失,对一个变量的操作内存数据的复制,没有性能损失,对一个变量的操作会影响到引用同一个对象的另一个变量。会影响到引用同一个对象的另一个变量。.NET基本类型基本类型 在在.NET Framework中,被编译器直接支持的中,被编译器直接支持的数据类型称为基本类型,也被设计成类,每种数据数据类型称为基本类型,也被设计成类,每种数据类型都有属性和方法,在类型都有属性和方法,
5、在.NET Framework类库中类库中都有对应的类名。都有对应的类名。.NET基本类型包括:基本类型包括:基本值类型:包括整型、浮点类型、小数型、布尔型、基本值类型:包括整型、浮点类型、小数型、布尔型、字符型。字符型。基本引用类型:包括基本引用类型:包括Object类型(对象类型)、类型(对象类型)、String类型。类型。2.1.1 2.1.1 值类型值类型 u声明一个值类型的语法形式为:声明一个值类型的语法形式为:数据类型名数据类型名 变量名称变量名称 =n;例如:例如:int a=100;/声明一个整型变量声明一个整型变量a,并赋初值为,并赋初值为100;注意,注意,C#不允许使用未
6、初始化的变量。不允许使用未初始化的变量。名称名称.NET类名类名说明说明范围范围sbyteSystem.SByte8位有符号整数位有符号整数-2n-12n-1-1(n=8)byteSystem.Byte8位无符号整数位无符号整数02n-1(n=8)shortSystem.Int1616位有符号整数位有符号整数-2n-12n-1-1(n=16)ushortSystem.Uint1616位无符号整数位无符号整数02n-1(n=16)intSystem.Int3232位有符号整数位有符号整数-2n-12n-1-1(n=32)uintSystem.Uint6432位无符号整数位无符号整数02n-1(n
7、=32)longSystem.Int6464位有符号整数位有符号整数-2n-12n-1-1(n=64)ulongSystem.Uint3264位无符号整数位无符号整数02n-1(n=64)floatSystem.Single32位单精度浮点数位单精度浮点数(7位有效数字位有效数字)1.510-45 3.41038doubleSystem.Double64位双精度浮点数位双精度浮点数(15到到16位有效数字位有效数字)5.010-324 1.710308decimalSystem.Decimal 128位高精度十进制数位高精度十进制数(28位到位到29位有效数字位有效数字)1.010-28 7.
8、91028boolSystem.BooleanTrue或或 falsecharSystem.Char16位位Unicode字符字符C#基本值类型基本值类型注:有效数字指从第一个不是零的数字起到最后一个数为止的数位。注:有效数字指从第一个不是零的数字起到最后一个数为止的数位。整数型整数型浮点型浮点型小数型小数型布尔型布尔型字符型字符型关于基本值类型的说明(关于基本值类型的说明(1):):n如果对一个整数的数值没有作出指示,编译器将其默认为如果对一个整数的数值没有作出指示,编译器将其默认为int类型,若不是类型,若不是int型,要加相应后缀,如:型,要加相应后缀,如:uint ui=9000u;l
9、ong l=9000L;ulong ul=9000L;n如果对一个非整数的数值没有作出指示,编译器将其默认如果对一个非整数的数值没有作出指示,编译器将其默认为为double类型,如果想指定为类型,如果想指定为float型或小数型,数值要型或小数型,数值要分别加后缀分别加后缀f或或m,如:如:float f=345.12f;decimal d=10.0m;nbool类型的值和整数类型不能互相转换。类型的值和整数类型不能互相转换。关于基本值类型的说明(关于基本值类型的说明(2):):nchar类型的值是使用单引号括起来的,如类型的值是使用单引号括起来的,如A,汉汉。nC#定义了一种特殊形式的字符数
10、据,即以定义了一种特殊形式的字符数据,即以“”开头的转义字开头的转义字符,转义字符用于在程序中取代特殊的控制字符,如下表所符,转义字符用于在程序中取代特殊的控制字符,如下表所示。示。转义序列转义序列字符字符转义序列转义序列字符字符单引号单引号f换页换页双引号双引号n换行换行反斜杠反斜杠r回车回车0空空t水平水平Taba警告警告v垂直垂直Tabb退格(退格()结构类型结构类型n在实际生活中,经常把一组相关的信息放在一起。在实际生活中,经常把一组相关的信息放在一起。n如,记录一本书的相关信息如书名、作者和内容等。如果如,记录一本书的相关信息如书名、作者和内容等。如果按照简单的管理,每一条记录都要放
11、到三个不同的变量中,按照简单的管理,每一条记录都要放到三个不同的变量中,这样的工作量很大,也不够直观。这样的工作量很大,也不够直观。nC#结构体可以解决这个问题。把一系列相关的变量组织结构体可以解决这个问题。把一系列相关的变量组织成为一个单一实体的过程,称为生成结构的过程。这个单成为一个单一实体的过程,称为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构的成一实体的类型就叫做结构类型,每一个变量称为结构的成员。结构类型的变量采用员。结构类型的变量采用struct来进行声明。声明形式如来进行声明。声明形式如下:下:n 访问修饰符访问修饰符 struct 结构名称结构名称n n
12、 /主体主体n n下面根据记录书中的信息定义一个结构体,代码下面根据记录书中的信息定义一个结构体,代码如下:如下:npublic struct cententn public string title;n public string author;n public string content;nn 结构类型举例:结构类型举例:nusing System;nnamespace StructExamplen public struct Pointn public int x;n public int y;n public string s;n n class Programn public st
13、atic void Main()n Point p;n p.x=3;n p.y=4;n p.s=ok;n Console.WriteLine(The result is 0,1,2,p.x,p.y,p.s);n Console.ReadLine();n n nn运行结果:运行结果:The result is 3,4,ok枚举类型枚举类型n枚举是值类型的一种特殊形式,为简单类型的常数值提供一种方枚举是值类型的一种特殊形式,为简单类型的常数值提供一种方便记忆的方法。枚举类型的定义形式一般为:便记忆的方法。枚举类型的定义形式一般为:n enum:枚举数据类型枚举数据类型 枚举名枚举名 枚举值表枚举值
14、表;n每一种枚举类型都有一种基本类型,每一种枚举类型都有一种基本类型,long、int、short和和byte等等整数类型均可作为枚举类型的基本类型,如果不指明数据类型,整数类型均可作为枚举类型的基本类型,如果不指明数据类型,则默认为则默认为int型,且第一个元素的值为型,且第一个元素的值为0,其后每一个连续元素的,其后每一个连续元素的值加值加1递增,但是也可以给元素直接赋值定义。如:递增,但是也可以给元素直接赋值定义。如:nenum DaysMon,Tue,Wed,Fri,Sat,Sun;/Mon:0,Tue:1n该枚举名为该枚举名为Days,枚举值共有,枚举值共有7个,即一周中的个,即一周
15、中的7天,所有被声天,所有被声明为明为Days类型的变量,其值只能是七天中的某一天。例如,当定类型的变量,其值只能是七天中的某一天。例如,当定义义Days类型变量类型变量aDays后,变量后,变量aDay的值为如下形式:的值为如下形式:nDays aDay;naDay=Days.Wed;n又如:又如:nenum Data:long Min=255l,Mid=1024l,Max=32768l;枚举类型举例枚举类型举例nusing System;nnamespace EnumExamplen class Programn /定义枚举型数据定义枚举型数据days,并赋值,并赋值,Sun到到Sat的值
16、分别对应于的值分别对应于0到到6n enum days Sun,Mon,Tue,Wed,Thu,Fri,Sat;n static void Main()n Console.WriteLine(days.Wed);n Console.WriteLine(int)days.Wed);n /定义定义days型变量型变量myday,为其赋枚举中的值,为其赋枚举中的值Frin days myday=days.Fri;n Console.WriteLine(myday);n Console.ReadLine();n n nn运行结果:运行结果:nWedn3nFri2.1.2 2.1.2 引用类型引用类型
17、u在基本类型里的引用类型有两个数据类型,即在基本类型里的引用类型有两个数据类型,即Object类型和类型和String类型。类型。名称名称.NET 库别名库别名说明说明ObjectSystem.Object 根类型,根类型,.NET库中的其它任何类型库中的其它任何类型都是从它派生而来的(包括值类都是从它派生而来的(包括值类型)。型)。StringSystem.String代表代表Unicode字符串字符串关于基本引用类型的说明关于基本引用类型的说明n(1)Object类型类型 在在C#中,中,Object类型是一切类型的最终父类型是一切类型的最终父类型,所有内在的和用户定义的类型归根结底都类型
18、,所有内在的和用户定义的类型归根结底都是由它派生而来的。是由它派生而来的。n(2)String类型(字符串)类型(字符串)C#提供了一个封装良好的提供了一个封装良好的string类,可以方类,可以方便地执行字符串相关的操作,如下所示:便地执行字符串相关的操作,如下所示:string string1=“你好你好”;string string2=“C#”;string string3=string1+string2;n(3)字符串在赋值方面像值类型,而不像引用类型。)字符串在赋值方面像值类型,而不像引用类型。nusing System;nclass stringexamplenstatic voi
19、d Main()nstring s1=a string;nstring s2=s1;nConsole.WriteLine(s1 is +s1);nConsole.WriteLine(s2 is +s2);ns1=another string;nConsole.WriteLine(s1 is now +s1);nConsole.WriteLine(s2 is now +s2);nConsole.ReadLine();nnn运行结果如下:运行结果如下:ns1 is a stringns2 is a stringns1 is now another stringns2 is now a string
20、n(4)String是是Uncode字符串,即每个英文字母与汉字一样,均字符串,即每个英文字母与汉字一样,均占两个字节,长度均为占两个字节,长度均为1。例如:。例如:nstring str=“ab张三张三cde”;nConsole.WriteLine(str.Length);/输出结果:输出结果:7。n(5)可以使用可以使用Format方法将字符串表示为规定格式。规定格式方法将字符串表示为规定格式。规定格式的一般形式为:的一般形式为:nN,M:格式码格式码n其中其中,:表示其中的内容为可选项。表示其中的内容为可选项。N:从零开始的整数,表示第几个参数。从零开始的整数,表示第几个参数。M:可选整
21、数,表示最小长度。若该参数的长度小于可选整数,表示最小长度。若该参数的长度小于M的绝对值,就用空的绝对值,就用空格填充,如果格填充,如果M为负,则左对齐;如果为负,则左对齐;如果M为正,则右对齐。为正,则右对齐。M默认为默认为0。格式码格式码:可选的格式化代码字符串可选的格式化代码字符串(字母不区分大小写字母不区分大小写)。n如:如:nint i=123;double j=123.453;nString s=String.Format(“i=0,-7:d5,j=1,7:f2”,i,j);nConsole.WriteLine(s);n结果:结果:i=00123 ,j=123.45部分格式码部分格
22、式码格式符格式符含义含义示例示例:(int i=10;double x=10.5;)结果结果C将数字按将数字按照金额形照金额形式输出式输出Console.WriteLine(“0:C”,i);¥10.00Console.WriteLine(“0:C”,x);¥10.50 Dn输出整数输出整数(n为数字为数字个数,不个数,不足补足补0)Console.WriteLine(“0:D”,i);10Console.WriteLine(“0:D5”,i);00010Fn小数点后小数点后位数固定位数固定(n为小数为小数点位数,点位数,不足补不足补0)Console.WriteLine(“0:F”,i);1
23、0.00Console.WriteLine(“0:F4”,i);10.50002.1.3 2.1.3 值类型之间的数据转换值类型之间的数据转换 u同类整数值类型之间有两种转换方式:同类整数值类型之间有两种转换方式:隐式转换与显式转换;隐式转换与显式转换;u所有值类型之间的转换,都可以使用所有值类型之间的转换,都可以使用Convert类转换。类转换。(1)(1)同类整数值类型之间的数据转换同类整数值类型之间的数据转换-隐式转换隐式转换 从低精度、小范围的数据类型转换为高从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以用隐式转换。精度、大范围的数据类型,可以用隐式转换。例如:例如:i
24、nt k=1;int k=1;long i=2;long i=2;i=k;/i=k;/隐式转换隐式转换(2)(2)同类整数值类型之间的数据转换同类整数值类型之间的数据转换-显式转换显式转换 从大范围类型的数据转换为小范围类型的从大范围类型的数据转换为小范围类型的数据的时候,必须采用显式转换,而且特别谨数据的时候,必须采用显式转换,而且特别谨慎,因为此时有丢失数据的危险。如:慎,因为此时有丢失数据的危险。如:long k=5000;int i=(int)k 所有的隐式转换也都可以采用显式转换的形所有的隐式转换也都可以采用显式转换的形式来表示。如:式来表示。如:int i=10;long j=(l
25、ong)i;(3)使用)使用Convert类进行所有值类型间的转换类进行所有值类型间的转换 命命 令令结结 果果Convert.ToBoolean(val)val转化为转化为boolConvert.ToByte(val)val转化为转化为byteConvert.ToChar(val)val转化为转化为charConvert.ToDecimal(val)val转化为转化为decimalConvert.ToDoube(val)val转化为转化为doubleConvert.ToInt16(val)val转化为转化为shortConvert.ToInt32(val)val转化为转化为intConver
展开阅读全文