《C#程序设计基础.ppt》由会员分享,可在线阅读,更多相关《C#程序设计基础.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.NET程序设计程序设计咸阳师范学院咸阳师范学院信息工程学院信息工程学院李李红红1该课程主要内容:该课程主要内容:第一章第一章 C#.NETC#.NET概述概述第二章第二章 C#C#程序设计基础程序设计基础第三章第三章 面向对象程序设计面向对象程序设计第四章第四章 WindowsWindows程序设计基础程序设计基础第五章第五章 数据库应用开发技术数据库应用开发技术第六章第六章 文件操作文件操作第七章第七章 多线程开发技术多线程开发技术第八章第八章 GDI+GDI+图形编程基础图形编程基础第九章第九章 图像编程技术图像编程技术第十章第十章 ASP.NETASP.NET编程基础编程基础2第二章第
2、二章C#程序设计基础程序设计基础3重点及难点:重点及难点:掌握掌握C#的基本数据类型;的基本数据类型;掌握掌握C#各种运算符表达式的用法;各种运算符表达式的用法;理解理解C#控制台程序的基本结构;控制台程序的基本结构;会使用会使用IF、WHILE、FOR等语句编写程序;等语句编写程序;掌握数组的使用方法;掌握数组的使用方法;了解异常处理方法;了解异常处理方法;4本章主要内容:本章主要内容:2.1C#基本数据类型基本数据类型2.2常量、变量与表达式常量、变量与表达式2.3选择结构选择结构2.4循环结构循环结构2.5异常处理异常处理5数据类型是对客观数据对象的抽象,它数据类型是对客观数据对象的抽象
3、,它将数据和对数据的操作封装为一个整体;将数据和对数据的操作封装为一个整体;C#是一种强类型语言,它在程序中用是一种强类型语言,它在程序中用到的变量、表达式和数值等都必须有类到的变量、表达式和数值等都必须有类型;型;分类:分类:2.1.1值类型值类型2.1.2引用类型引用类型2.1C#基本数据类型基本数据类型62.1C#基本数据类型基本数据类型值类型和引用类型的区别:值类型和引用类型的区别:特性特性值类型值类型引用类型引用类型变变量中保存的内容量中保存的内容实际实际数据数据指向指向实际实际数据的引用指数据的引用指针针内存空内存空间间配置配置堆堆栈栈(Stack)受管制的堆(受管制的堆(Mana
4、gedHeap)内存需求内存需求较较少少较较多多执执行效率行效率较较快快较较慢慢内存内存释释放放时间时间点点执执行超行超过过定定义变义变量量的作用域的作用域时时由垃圾回收机制由垃圾回收机制负责负责回收回收可以可以为为null不可以不可以可以可以7值类型:值类型:简单类型(简单类型(SimpleType)整形整形实型、十进制型实型、十进制型布尔型布尔型结构类型(结构类型(StructType)枚举类型(枚举类型(EnumType)引用类型:引用类型:类类型(类类型(ClassType)接口类型(接口类型(InterfaceType)委托类型(委托类型(Delegate)数组类型(数组类型(Arr
5、ayType)2.1C#基本数据类型基本数据类型82.1.1值类型值类型值类型就是一个包含实际数据的量。值类型就是一个包含实际数据的量。值类型变量直接含有它们的数据。值类型变量直接含有它们的数据。每一个值类型变量都有它自己数据的副本,每一个值类型变量都有它自己数据的副本,因此对一个变量的操作不会影响到另一个变因此对一个变量的操作不会影响到另一个变量。量。当定义一个值类型的变量时,当定义一个值类型的变量时,C#会根据它所会根据它所声明的类型,以堆栈方式分配一块大小合适声明的类型,以堆栈方式分配一块大小合适的存储区域给这个变量,随后对这个变量的的存储区域给这个变量,随后对这个变量的读或写操作就直接
6、在这块内存区域进行。读或写操作就直接在这块内存区域进行。9简单类型是由一系列元素构成的数据类型;简单类型是由一系列元素构成的数据类型;1简单类型(简单类型(SimpleType)101简单类型(简单类型(SimpleType)整数类型整数类型有九种,区别在于所占存储空间的大小,带不带有九种,区别在于所占存储空间的大小,带不带符号位以及所能表示数的范围不同;符号位以及所能表示数的范围不同;字符型归为整形;字符型归为整形;但它与整形又不同,它不支持从其它类型到字但它与整形又不同,它不支持从其它类型到字符型的隐式转换;符型的隐式转换;有符号有符号sbyteshortintlong如如87L,0 x1
7、F无符号无符号byteushortuintulong如如87UL字符类型字符类型char如如auA0B1n(回车回车)111简单类型(简单类型(SimpleType)实数类型实数类型浮点类型浮点类型一般不产生异常;一般不产生异常;float如如3.14Fdouble如如3.143.14D(后面这个后面这个D可以省略可以省略)十进制类型十进制类型有较高的精度,但取值范围较小;有较高的精度,但取值范围较小;Decimal如如120.50M从浮点型到十进制类型的转换可能会产生溢出异常;从浮点型到十进制类型的转换可能会产生溢出异常;从十进制类型到浮点类型的转换则会导致精度的损失;从十进制类型到浮点类型
8、的转换则会导致精度的损失;二者间不存在隐式转换;二者间不存在隐式转换;121简单类型(简单类型(SimpleType)布尔类型布尔类型bool如如truefalse(小写小写)与其它类型之间不存在标准转换;与其它类型之间不存在标准转换;13C#中定义了四类中定义了四类/八种基本数据类型八种基本数据类型逻辑型逻辑型-boolean文本型文本型-char整数型整数型-byte,short,int,long浮点数型浮点数型-float,double注意:每种数据类型都有一个关键词注意:每种数据类型都有一个关键词int相当于相当于System.Int32double相当于相当于System.Doubl
9、ebool相当于相当于System.Boolean1简单类型(简单类型(SimpleType)142枚举类型(枚举类型(EnumType)枚举类型是一种值类型,它用于声明一组命枚举类型是一种值类型,它用于声明一组命名的常数。名的常数。枚举类型的声明形式:枚举类型的声明形式:访问修辞符访问修辞符enum枚举名:基础类型枚举名:基础类型枚举成员枚举成员152枚举类型(枚举类型(EnumType)注:注:基础类型必须能够表示该枚举中定义的所基础类型必须能够表示该枚举中定义的所有枚举数值。有枚举数值。枚举声明可以显式地声明枚举声明可以显式地声明byte、sbyte、short、ushort、int、u
10、int、long或或ulong类型作为对应的基础类型。类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味没有显式地声明基础类型的枚举声明意味着所对应的基础类型是着所对应的基础类型是int。162枚举类型(枚举类型(EnumType)每个枚举成员的常数值必须在该枚举的基础每个枚举成员的常数值必须在该枚举的基础类型的范围之内;类型的范围之内;第一个枚举成员的默认值为零;第一个枚举成员的默认值为零;173结构类型结构类型结构类型是指把各种不同类型数据信息组合结构类型是指把各种不同类型数据信息组合在一起形成的组合类型;在一起形成的组合类型;结构是用户自定义的数据类型;结构是用户自定义的数据类
11、型;声明结构类型的一般语法格式如下声明结构类型的一般语法格式如下struct标识符标识符结构成员定义;结构成员定义;18例:例:structStudent/定义名为定义名为Student的结构类型的结构类型longno;/定义结构的数据成员定义结构的数据成员stringname;intage;stringuniversity;/定义结构的方法成员定义结构的方法成员voidstructmethod()/方法可执行代码方法可执行代码3结构类型结构类型193结构类型结构类型结构成员分为:结构成员分为:静态成员静态成员成员名前有成员名前有static;通过结构名来访问;通过结构名来访问;实例成员:成员
12、名前无实例成员:成员名前无static通过创建结构类型的变量来访问;通过创建结构类型的变量来访问;20创建结构类型的变量的一般形式如下:创建结构类型的变量的一般形式如下:结构名结构名标识符;标识符;如:如:Studentzhangsan,lisi;说明:结构名为已声明的结构类型的名说明:结构名为已声明的结构类型的名称,标识符必须是称,标识符必须是C#合法的标识符,它合法的标识符,它用来表示结构类型的变量。用来表示结构类型的变量。3结构类型结构类型212.1.2引用类型引用类型引用类型是将数据保存在堆上的存储方式。引用类型是将数据保存在堆上的存储方式。当将一个数据给引用类型时,它被保存在堆当将一
13、个数据给引用类型时,它被保存在堆上的变量中。上的变量中。引用类型的大小不固定,为了可以快速地搜引用类型的大小不固定,为了可以快速地搜索引用类型数据的值,通过将其地址保存在索引用类型数据的值,通过将其地址保存在堆栈上,可以通过地址找到真正数据的所在。堆栈上,可以通过地址找到真正数据的所在。222.1.2引用类型引用类型引用类型很抽象,就像一个门牌号,可以根引用类型很抽象,就像一个门牌号,可以根据门牌号找到所在的房子。据门牌号找到所在的房子。引用类型一般包括类、接口、委托和数组等。引用类型一般包括类、接口、委托和数组等。231类类类是引用类型;类是引用类型;new用来显示创建类的变量;用来显示创建
14、类的变量;242数组数组数组是一种聚合类型,表示具有相同类型的数组是一种聚合类型,表示具有相同类型的一组对象的集合,这些对象叫做数组元素;一组对象的集合,这些对象叫做数组元素;数组是多个相同类型数据的组合,实现对这数组是多个相同类型数据的组合,实现对这些数据的统一管理;些数据的统一管理;数组属引用类型,数组型数据是对象,数组数组属引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量;中的每个元素相当于该对象的成员变量;数组中的元素可以是任何数据类型,包括基数组中的元素可以是任何数据类型,包括基本类型和引用类型;本类型和引用类型;25一维数组一维数组1一维数组一维数组一维数组的声明
15、:一维数组的声明:intnums;数组元素的下标从数组元素的下标从0开始;开始;使用数组要防止使用数组要防止“越界越界”;作为引用类型作为引用类型需要初始化后才能使用,且需要指定数组长度;需要初始化后才能使用,且需要指定数组长度;数组中存放的只是各个引用对象的地址,此时有数组中存放的只是各个引用对象的地址,此时有可能多个数组指向同一个对象;可能多个数组指向同一个对象;作为值类型作为值类型数据直接存放在数组中;数据直接存放在数组中;26例如:例如:inta1;doubleb;Mydatec;C#语言中声明数组时不能指定其长度语言中声明数组时不能指定其长度(数组中数组中元素的个数元素的个数),例如
16、:,例如:inta5;/非法非法一维数组一维数组272数组初始化数组初始化动态初始化动态初始化数组定义与为数组元素分配空间并赋值的操作数组定义与为数组元素分配空间并赋值的操作分开进行。分开进行。inta;a=newint3;a0=3;a1=9;a2=8;一维数组一维数组28静态初始化:静态初始化:在定义数组的同时就为数组元素分配空间并赋在定义数组的同时就为数组元素分配空间并赋值。值。inta=3,9,8;MyDatedates=newMyDate(22,7,1964),newMyDate(1,1,2000),newMyDate(22,12,1964);一维数组一维数组29规则多维数组规则多维数
17、组规则多维数组的定义:规则多维数组的定义:string,names=newstring5,4;初始化:初始化:int,numbers=newint3,21,2,3,4,5,6;可省略数组的大小,如下所示:可省略数组的大小,如下所示:int,numbers=newint,1,2,3,4,5,6;如果提供了初始值设定项,还可省略如果提供了初始值设定项,还可省略new语句,语句,如下所示:如下所示:int,numbers=1,2,3,4,5,6;二维数组二维数组30交错的数组交错的数组定义方法:定义方法:bytescores;intnumbers=newint2newint2,3,4,newint5
18、,6,7,8,9;可省略第一个数组的大小,如下所示:可省略第一个数组的大小,如下所示:intnumbers=newintnewint2,3,4,newint5,6,7,8,9;二维数组二维数组31classStudypublicintx=15;/类的变量,默认为类的变量,默认为15classProgramstaticvoidMain(stringargs)/引用类型的演示引用类型的演示StudyA1=newStudy();StudyA2=A1;A2.x=25;/值类型的演示值类型的演示intB1=35;intB2=B1;B2=45;Console.WriteLine(A1.x=+A1.x+,A
19、2.x=+A2.x);/引用类型结果引用类型结果Console.WriteLine(B1=+B1+,B2=+B2);/值类型结果值类型结果Console.Read();322.2常量、变量与表达式常量、变量与表达式2.2.1常量常量2.2.2变量变量2.2.3运算符与表达式运算符与表达式2.2.4运算符的优先级与结合性运算符的优先级与结合性2.2.5类型转换类型转换332.2.1常量常量常量就是在程序的运行期间其值不会改变的常量就是在程序的运行期间其值不会改变的量,通常分为直接常量和符号常量。量,通常分为直接常量和符号常量。直接常量直接常量(1)整型常量)整型常量(2)实型常量)实型常量(3)
20、字符常量)字符常量(4)字符串常量)字符串常量(5)布尔常量)布尔常量341直接常量直接常量(1)整型常量)整型常量C#语言整型常量的三种表示形式:语言整型常量的三种表示形式:十进制整数,如十进制整数,如12,-314,0。八进制整数,要求以八进制整数,要求以0开头,如开头,如012十六进制数,要求十六进制数,要求0 x或或0X开头,如开头,如0 x12C#语言的整型常量默认为语言的整型常量默认为int型,如:型,如:inti=3;声明声明long型常量可以后加型常量可以后加l或或L,如:,如:longl=3L;35(2)实型常量)实型常量C#浮点类型常量有两种表示形式:浮点类型常量有两种表示
21、形式:十进制数形式:必须含有小数点,例如:十进制数形式:必须含有小数点,例如:3.14314.0.314科学记数法形式:如:科学记数法形式:如:3.14e23.14E2314E2C#浮点型常量默认为浮点型常量默认为double型,如要声明一型,如要声明一个常量为个常量为float型,则需在数字后面加型,则需在数字后面加f或或F,如:如:doubled=3.14;floatf=3.14f;1直接常量直接常量36(3)字符常量)字符常量字符常量是用单引号括起来的单个字符,如:字符常量是用单引号括起来的单个字符,如:charc=A;C#字符采用字符采用Unicode编码,每个字符占两个编码,每个字符
22、占两个字节,因而可用十六进制编码形式表示字节,因而可用十六进制编码形式表示charc1=u0061;C#语言中还允许使用转义字符语言中还允许使用转义字符来将其后的来将其后的字符转变为其它的含义字符转变为其它的含义charc2=n;/代表换行符代表换行符1直接常量直接常量371直接常量直接常量38(4)字符串常量)字符串常量字符串常量是用双引号括起的零个或多个字字符串常量是用双引号括起的零个或多个字符序列。符序列。C#支持两种形式的字符串常量:支持两种形式的字符串常量:一种是常规字符串;一种是常规字符串;另一种是逐字字符串。另一种是逐字字符串。常规字符串就是用双引号括起的一串字符,常规字符串就是
23、用双引号括起的一串字符,可以包括转义字符。如:可以包括转义字符。如:”China,Beijing”,“d:myfilef1.txt”等。等。1直接常量直接常量39(5)布尔常量)布尔常量boolean类型适于逻辑运算,一般用于程序类型适于逻辑运算,一般用于程序流程控制。流程控制。boolean类型数据只允许取值类型数据只允许取值true或或false,不可以不可以0或非或非0的整数替代的整数替代true和和false。1直接常量直接常量402.符号常量符号常量符号常量通常用来保存一个固定值;符号常量通常用来保存一个固定值;例如,在程序设计中,圆周率例如,在程序设计中,圆周率“PI”是一个是一个
24、固定的值,那么,在程序开始时,就可以将固定的值,那么,在程序开始时,就可以将其定义为一个常量。其定义为一个常量。常量的定义语法如下所示,其中,常量的定义语法如下所示,其中,“const”是定义常量的关键字,同时还要将变量名大是定义常量的关键字,同时还要将变量名大写。写。const类型名称类型名称常量名常量名=常量表达式常量表达式;如:如:constdoublePI=3.1415926;412.2.2变量变量1变量命名规则变量命名规则变量名的首字符必须是字母、汉字或下划线;变量名的首字符必须是字母、汉字或下划线;变量名中不能包含空格、小数点以及各种符变量名中不能包含空格、小数点以及各种符号;号;
25、组成变量名的字符数不要太长,应控制在组成变量名的字符数不要太长,应控制在330个字符;个字符;变量名不能是关键字。如:变量名不能是关键字。如:int,object等不等不能用作变量名;能用作变量名;变量名在同一范围内必须是唯一的;变量名在同一范围内必须是唯一的;42在在C#中声明变量使用下述语法:中声明变量使用下述语法:类型类型标识符标识符;注意:注意:C#编译器需要用某个初始值对变量进行初始化,编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量;之后才能在操作中引用该变量;如果检测到局部变量在初始化之前就使用了它的如果检测到局部变量在初始化之前就使用了它的值,就会产生错误;值
26、,就会产生错误;2.2.2变量变量43运算符运算符1算术运算符算术运算符2字符串运算符字符串运算符3赋值运算符赋值运算符4逻辑运算符逻辑运算符5位运算符位运算符6条件赋值运算符条件赋值运算符2.2.3运算符与表达式运算符与表达式441算术运算符算术运算符算术运算符算术运算符:+,*,/,%,+,-有关有关/:15/415/315/215.0/2有关有关%:100%3100%-3-100%-3-100%3有关有关%的含义:的含义:偶数偶数a%2,整除整除a%7,个位个位a%10有关有关+,-:a=5;a+;b=a*2a=5;b=+a*2;a=5;b=a+*2;452字符串运算符字符串运算符字符串
27、连接运算符字符串连接运算符字符串连接运算符字符串连接运算符 +除用于算术加法运算外,还可用于对字除用于算术加法运算外,还可用于对字符串进行连接操作符串进行连接操作inti=300+5;strings=hello,+world!;+运算符两侧的操作数中只要有一个是字运算符两侧的操作数中只要有一个是字符串符串(String)类型,系统会自动将另一个操类型,系统会自动将另一个操作数转换为字符串然后再进行连接作数转换为字符串然后再进行连接strings=hello,+300+5+号号;/输出:输出:hello,3005号号463赋值运算符赋值运算符赋值运算符就是常见的赋值运算符就是常见的“=”,它可以
28、为数值,它可以为数值型、枚举、类等所有的类型赋值。使用型、枚举、类等所有的类型赋值。使用“=”的语法如下所示:的语法如下所示:变量变量=值;值;其中,其中,“=”左边一般为变量的名称,左边一般为变量的名称,“=”右边为固定的值、已经知道的变量或新实例右边为固定的值、已经知道的变量或新实例化的类。还有一种赋值运算符可计算后再赋化的类。还有一种赋值运算符可计算后再赋值。如值。如“+=”或或“-=”。474关系运算符与关系表达式关系运算符与关系表达式485逻辑运算符逻辑运算符与:与:C#中的符号为中的符号为“&”,表示必须满足两,表示必须满足两个条件。语法为个条件。语法为“表达式表达式1&表达式表达
29、式2”。或:或:C#中的符号为中的符号为“|”,表示满足两个条,表示满足两个条件中的任意一个即可。语法为件中的任意一个即可。语法为“表达式表达式1|表表达式达式2”。非:非:C#中的符号为中的符号为“!”。表示取当前表达式。表示取当前表达式结果的相反结果。如果当前表达式为结果的相反结果。如果当前表达式为“true”,则计算结果为,则计算结果为“false”。语法为。语法为“!表达式表达式”。496位运算符位运算符&按位与:将两个值的二进制进行与操作。按位与:将两个值的二进制进行与操作。只有两个二进位均为只有两个二进位均为1时,结果位才为时,结果位才为1,否,否则为则为0|按位或:将两个值的二进
30、制进行或操作。只按位或:将两个值的二进制进行或操作。只要两个二进制位中有一个为要两个二进制位中有一个为1,结果位就等于,结果位就等于1,否则为,否则为0按位异或按位异或取反取反右移:将变量的二进制位往右移动右移:将变量的二进制位往右移动507条件赋值运算符及表达式条件赋值运算符及表达式条件运算符由符号条件运算符由符号“?”与与“:”组成,通过组成,通过操作三个操作数完成运算;操作三个操作数完成运算;一般格式为:一般格式为:逻辑表达式逻辑表达式?表达式表达式1:表达式:表达式2在条件赋值表达式在运算时,首先运算在条件赋值表达式在运算时,首先运算“逻逻辑表达式辑表达式”的值,如果为的值,如果为tr
31、ue,则运算结果,则运算结果为为“表达式表达式1”的值,否则运算结果为的值,否则运算结果为“表达表达式式2”的值。的值。如:条件表达式如:条件表达式43?1:2的值为的值为1;条件表达式条件表达式34?1:2的值为的值为2。512.3选择结构选择结构2.3.1if语句语句1、单分支、单分支if语句语句2、双分支、双分支ifelse语句语句3、多分支、多分支if语句语句2.3.2switch语句语句522.3.1if语句语句1、单分支、单分支if语句语句语法形式如下:语法形式如下:if(表达式表达式)语句;语句;说明:如果表达式的值为说明:如果表达式的值为true(即条件成立即条件成立),则,则
32、执行后面执行后面if语句所控制的语句块;否则什么都语句所控制的语句块;否则什么都不执行。不执行。532、双分支、双分支ifelse语句语句语法如下:语法如下:if(表达式表达式)语句块语句块1;else 语句块语句块2;说明:如果表达式的值为说明:如果表达式的值为true(即条件成立即条件成立),则执行后,则执行后面面if语句所控制的语句块语句所控制的语句块1;如果表达式的值为;如果表达式的值为false(即条件不成立即条件不成立),则执行,则执行else语句所控制的语句块语句所控制的语句块2;然后再执行下一条语句。;然后再执行下一条语句。2.3.1if语句语句543、多分支、多分支if语句语
33、句在在ifelse语句中可以嵌套使用多层语句中可以嵌套使用多层ifelse语句,如:语句,如:if(表达式表达式1)if(表达式表达式2)if(表达式表达式3)语句语句1;else语句语句2;else 语句语句3;else语句语句4;2.3.1if语句语句55例:首先输入一个成绩,然后判断该成绩是优、良、中、及格还是例:首先输入一个成绩,然后判断该成绩是优、良、中、及格还是不及格。不及格。classTeststaticvoidMain()Console.Write(请输入考试成绩请输入考试成绩:);doublescore=double.Parse(Console.ReadLine();if(s
34、core=90)Console.WriteLine(成绩为优成绩为优);elseif(score=80)Console.WriteLine(成绩为良成绩为良);elseif(score=70)Console.WriteLine(成绩为中成绩为中);elseif(score=60)Console.WriteLine(成绩为及格成绩为及格);elseConsole.WriteLine(成绩为不及格成绩为不及格);2.3.1if语句语句562.3.2switch语句语句switch语句的一般格式如下:语句的一般格式如下:switch(表达式表达式)case常量表达式常量表达式1:语句语句1;brea
35、k;case常量表达式常量表达式2:语句语句2;break;case常量表达式常量表达式n:语句语句n;break;default:语句语句n+1;break;57说明:说明:switch语句也是一个多条件判断语句;语句也是一个多条件判断语句;当代码执行到此语句时,根据当代码执行到此语句时,根据“case”语句的条语句的条件,逐个判断变量的值,满足条件的,则进入相件,逐个判断变量的值,满足条件的,则进入相对应的对应的“case”代码段,如果不满足任何代码段,如果不满足任何“case”条件,则进入条件,则进入“default”语句,执行默语句,执行默认代码段。认代码段。每个每个“case”代码段
36、内都必须带有一个代码段内都必须带有一个“break;”语句,用来从当前分支条件中跳出。语句,用来从当前分支条件中跳出。2.3.2switch语句语句582.4循环结构循环结构2.4.1while语句语句2.4.2do-while语句语句2.4.3for语句语句2.4.4foreach语句语句2.4.5跳转语句跳转语句592.4.1while语句语句while语句的语法如下:语句的语法如下:while(条件条件)循环体语句;循环体语句;602.4.1while语句语句下面的实例用下面的实例用whlie语句实现输出语句实现输出0到到99。classWhileClassstaticvoidMain(
37、)inti=0;while(i100)Console.WriteLine(i);i+;Console.Read();612.4.2do-while语句语句一般形式:一般形式:do循环体语句;循环体语句;while(表达式表达式);62注意注意while语句与语句与do-while语句的区别:语句的区别:while语句是语句是“先判断再执行先判断再执行”;while语句循环语句循环体里的语句可能一次都不执行;体里的语句可能一次都不执行;do-while语句是语句是“先执行后判断先执行后判断”,do-while循循环体里的语句,至少执行一次;环体里的语句,至少执行一次;2.4.2do-while语
38、句语句632.4.3for语句语句for语句的使用语法如下所示。语句的使用语法如下所示。for(表达式表达式1;表达式;表达式2;表达式;表达式3)循环体语句;循环体语句;64for语句的执行过程为:语句的执行过程为:(1)首先计算表达式)首先计算表达式1的值;的值;(2)判断表达式)判断表达式2的值是的值是true还是还是false,若表达,若表达式式2的值为的值为false,则转而执行步骤(,则转而执行步骤(4);若表达);若表达式式2的值是的值是true,则执行循环体中的语句,然后求,则执行循环体中的语句,然后求表达式表达式3的值;的值;(3)转回步骤()转回步骤(2););(4)结束循
39、环,执行程序的下一条语句。)结束循环,执行程序的下一条语句。2.4.3for语句语句652.4.4foreach语句语句foreach语句是语句是C#中新增的循环语句;中新增的循环语句;处理数组及集合等数据类型是特别简便;处理数组及集合等数据类型是特别简便;foreach语句用于列举集合中的每一个元素,语句用于列举集合中的每一个元素,并且通过执行循环体对每一个元素都进行操并且通过执行循环体对每一个元素都进行操作;作;语法格式:语法格式:foreach(数据类型数据类型标识符标识符in表达式表达式)循环体循环体662.4.4foreach语句语句说明:说明:在在foreach语句执行过程中,循环
40、变量就代表当前语句执行过程中,循环变量就代表当前循环所执行的集合中的元素;循环所执行的集合中的元素;每执行一次循环体,循环变量就依次将集合中的每执行一次循环体,循环变量就依次将集合中的一元素带入其中,直到把集合中的元素处理完毕,一元素带入其中,直到把集合中的元素处理完毕,则跳出则跳出foreach循环,转而执行程序的下一条语句;循环,转而执行程序的下一条语句;672.4.5跳转语句跳转语句C#提供了提供了break/continue语句,用来控制循语句,用来控制循环的执行;环的执行;“break”可以中断当前正在执行的循环,并跳可以中断当前正在执行的循环,并跳出循环;出循环;“continue
41、”表示继续执行当前的循环,而后表示继续执行当前的循环,而后面的代码无需执行,即重新开始循环;面的代码无需执行,即重新开始循环;682.5异常处理异常处理异常:就是程序运行时发生的错误或某种意异常:就是程序运行时发生的错误或某种意想不到的状态;想不到的状态;如溢出、被零除、数组下标超出界限以及内如溢出、被零除、数组下标超出界限以及内存不够等;存不够等;所有异常类都必须继承自所有异常类都必须继承自c#内建的位于内建的位于System命名空间中的命名空间中的Exception异常类;异常类;692.5异常处理异常处理C#中异常是以类的形式出现的:中异常是以类的形式出现的:使用使用try/catch语句来捕获异常语句来捕获异常使用使用throw语句抛出异常语句抛出异常使用使用finally语句语句702.5异常处理异常处理把可能出现异常的语句块包含在一个把可能出现异常的语句块包含在一个try语句语句中,如果中,如果try块中出现异常,此异常就会被抛块中出现异常,此异常就会被抛出;出;使用使用catch可以捕获到异常,并可以合理地处可以捕获到异常,并可以合理地处理异常;理异常;throw可以人为抛出异常;可以人为抛出异常;无论发生什么,无论发生什么,finally语句总会被执行,用语句总会被执行,用户可以在此语句中执行一些清除资源的操作;户可以在此语句中执行一些清除资源的操作;7172
限制150内