C#面向对象程序设计知识点汇集.docx
C面*向对象程序设计知识点会萃第一章:c*入门1 .namespacenamespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace命名空间名(类的定义)2 .using关键字using关健字用于导入命名空间USing命名空间名;3 .class关键字ClaSS即类,是定义类的关键字。C*中必须用类来组织程序的变量和方法。4 .Main()方法C*程序必须且只能包含一个Main()方法,它是程序的入口点.staticvoidMain(stringargs)staticvoidMain()staticintMain(stringargs)staticintMain()5 .行输出方法语句Console.WriteLine("Hello.NET!")/的功能是向显示屏输出双引号之间的字符串。语句"ConsoIeReadLineO;"的功能是输入一个字符串6 C*程序构造C*程序的组成要素如下:1)命名空间:命名空间包含一个或者多个类。2)类。3)方法:方法必须包含在*一个类中,作为类的一个成员,每一个程序有且仅有一个Main()方法。4)语句:语句是C*应用程序中执行操作的命令。C*中的语句必须用分号丁完毕。5)关键字:关键字也叫保存字,是对C*有特定意义的字符串。6)大括号:在C*中,括号"和"是一种范围标志,表示代码层次的一种方式。7 .C*程序书写格式1)缩进2)字母大小写C*是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。3)程序注释(1)单行注释,以双斜线V/"开场,向来到本行尾部,均为注释内容。(2)多行注释,以7*开场,以完毕,可以注释多行,也可以注释一行代码中间的一局部,比拟灵便。(3)文档注释,使用V,假设有多行文档注释,每一行都用V开头。8 .Console类Console类是SyStem命名空间中预定义的一个类,用于实现控制台的根本输入输出。口编写一个控制台应用程序,输入字符串"IIOVethiSgame!,在屏幕上输出。usingSystem;口usingSystem.Te*t;口namespaceHello.NET口(口classProgram口staticvoidMain(stringargs)Console.WriteLine("IlovethisGame!");口)口口)相关知识及本卷须知1 .对象、类、属性和方法D类和对象2)属性每一个对象都有自己的特征和行为,对象的静态特征称为对象的属性3)方法方法是对象的行为特征,是一段可以完成特定功能的代码2 .事件和事件驱动事件就是预先定义好的、能被对象识别的动作。通过随时响应用户或者系统触发的事件,并做出相应响应的机制就叫做事件驱动机制。3 .窗体又搀4 JS物像D按钮控件按钮(BUtton)控件用于接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的主要方法之一。2)文本框控件文本框(Te*tBo*)控件用于获取用户输入的信息或者向用户显示文本信息,图1.17用于显示信息的白色框就是文本框5 .控件的根本操作有两种方法:第一种是按住Shift键或者CtH键不放,然后单击每一个要选择的控件;第二种是把光标移到窗体中的适当位置,然后拖动鼠标画出一个矩形,选中矩形内的控件包(括边线所经过的控件)O1(1).NET框架具有两个主要组件:和。(2)使用VS.NET开辟的每一个应用程序称为,它可以包括一个或者多个(3)命名空间是类的组织方式,C*提供了关键字来声明命名空间,提供了关键字来导入命名空间;如果要使用*个命名空间中的类,还需要添加对该命名空间所在的引用。(4) C*语言程序必须包含并且只能包含一个的方法(函数)是,它是程序的入口O(5) C*程序中的语句必须以作为语句完毕符。(6) Console类是SyStem命名空间中的一个类,用于实现控制台的根本输入输出,该类中有两个常用的方法,一个是功能为"输出一行文本的方法,另一个是功能为"输入一行文本的方法O2.选择题(1)下面是C*中的单行注释。A./*注释内容*/B.注释内容C./注释内容D.Note注释内容2 2)C*中以作为源文件的扩展名。A.cB.cppC.csD.e*e(3)关于C*程序书写格式,以下说法错误的选项是A.缩进曲呈序中是必须的BC*是大小写敏感的语言,它把同一字母的大小写当做两个不同的字符对待C.注释是给程序员看的,不会被编译,也不会生成可执行代码D.在C*中,大括号T和T是一种范围标志,大括号可以嵌套3 .简答题(1)简述C*程序的组成要素。答:C*程序的组成要素如下:命名空间、类、方法、语句、关键字、大括号"和。简述Windows应用程序编程步骤。答:在VS.NET中开辟WindoWS窗体应用程序的步骤如下:新建工程;设计程序界面,包括添加控件和设置控件属性;编写代码;保存程序;运行调试程序。(3)简述对事件驱动机制的理解。答:当用户或者系统触发事件时,对象就会响应事件,实现特定的功能,这种通过随时响应用户或者系统触发的事件,并做出相应响应的机制就叫做事件驱动机制响。应事件时执行的代码称为事件处理程序。开辟应用程序时编程人员的主要工作之一就是针对控件可能被触发的事件设计适当的事件处理程序。第二章:C*语法根抵1 .常量氨量有的量在过程中不起变化,就把其称为常量;有的量在过程中是变化的,也就是可以取不同的数值,就把其称为变量。在U中程序设计人员可以根据程序设计的需要,给存放常量和变量的内存地址取一个故意义的名字,分别叫做常量名和变量名。可以通过const关键字来定义常量,语法如下:const数据类型标识符常量名=数值或者表达式;说明(1) 一旦定义常量,就要赋初值,且这个常量的值在程序运行过程中是不允许改变的。(2)定义常量时,表达式中的运算符对象只允许出项常量和常数,不允许浮现变量。(3)不管常量和变量,都必须先定义后使用。变量的定义和赋值语法如下:数据类型标识符变量名=数值或者表达式;说明:(1)语法中的表示可选,就是说中的内容写或者不写都不会导致语法错误。(2)在对变量发展赋值时,数值或者表达式的值类型必须同变量的类型一样。2 C*变量命名规则为变量起名时要遵守C*语言的规定。(1)变量名必须以字母开头。(2)变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其他符号。(3)变量名不能与C*中的关键字名称一样。(4)变量名不能与C*中的库函数名称一样。(5)允许在变量名前加前缀一。说明:可以使用前缀加之关键字作为变量的名称。这主要是为了与其他语言发展交互时防止冲突。因为前缀"实际上并非名称的一局部,其他的编程语言就会把它作为一个普通的变量名。在其他情况下,不推荐使用前缀作为变量名的一局部。3 .变量的定义和赋值语法如下:数据类型标识符变量名=数值或者表达式;说明:(1)语法中的表示可选,就是说中的内容写或者不写都不会导致语法错误。(2)在对变量发展赋值时,数值或者表达式的值类型必须同变量的类型一样。如果数值或者表达式的值类型与变量的类型不一样,但数值或者表达式的值类型所表示的数值范围比被赋值变量的类型所表示的范围要小,是允许赋值的。事实上C*在内部发展了一次数值类型的转换,这种转换叫隐式转换。关于数据类型和隐式转换将在后面讲述。数值类型包括:整数类型、字符类型、浮点数类型、布尔类型、构造类型、枚举类型。引用类型包括:类类型(如string类)、数组类型、接口类型、代理类型。C的*数据类型体系如以下图。4 .髅理C*有8种整数类型:(1)短字节型(Sbyte)有符号8位整数(2)字节型(byte)无符号8位整数(3)短整型(ShOrt)有符号16位整数(4)无符号短整型(UShort)无符号16位整数(5整)型(int)有符号32位整数(6)无符号整型(Uint)无符号32位整数(7)长整型(Iong)有符号64位整数(8)无符号长整型(Ulong)无符号64位整数5 .浮点峰型C*支持3种根本浮点数:(1)表示单精度的float,精度7位表示双精度的double,精度15-16位(3)表示财务计算用途的decimal,精度29位在程序中书写一个十进制的数值常数时,C默*认按照如下方法判断一个数值常数属于哪种C*数值类型。(1)如果一个数值常数不带小数点,如3456,则这个常数的类型是个整数。(2)对于一个属于整型的数值常数,C*按如下顺序判断该数的类型:int,uint,long,along。(3)如果一个数值常数带小数点,如1.2,则该常数的类型是浮点型中的double类型。可以通过在数值常数后加后缀的方法来指定数值常数的类型。(1) U或者(U)后缀:加在整型常数后面,代表该常数是Uint类型或者Ulong类型,具体哪种,由常数的实际值决定。C*优先匹配uint类型。(2)1或者(L)后缀:加在整型常数后面,代表该常数是long类型或者ulong类型,具体哪种,由常数的实际值决定。C*优先匹配long类型。(3)UI或者(uL、Ul、UL、Iu、IU、山)后缀:加在整型常数后面,代表该常数是UIong类型。'd)f或者(F)后缀:加在任何一个数值常数后面,代表该常数是float类型。(5)d或者(D)后缀:加在任何一个数值常数后面,代表该常数是double类型。m或者(M)后缀:加在任何f数值常数后面,代表该常数是decimal类型。如果所指定的数据符号不能用指定类型表示,在编译时会产生错误。当用两种浮点型执行运算时,可以产生以下的值:正零和负零、+Infinity和-Infinity(正无穷大或者负无穷大)、NaN俳数字值Not-a-Number)6用来表示字符数据常量时,共有以下几种不同的表示方式。(1)用单引号将单一个字符包括起来,例如:A、n'、'u'。用原来的数值编码来表示字符数据常量,例如:W是97,V是118o(3)还可以直接通过十进制转义符(前缀*或者)Unicode表示法(前缀u)表示字符数据常量,例如:,*0032,x,u5495,(4)C*提供了转义符,用来在程序中指代特殊的控制字符:(见p36),Wr1 ,0t7 .字符串类型字符串类型是一个char类型的序列。定义一个字符串的语法如下:string变量名="字符串值例:stringstr;stringstr="c*;stringstr=Console.ReadLine();8 .布尔类型布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。布尔类型惟独两个值:true和false。通常占用1个字节的存储空间布尔类型还有一个特点:不能发展数据类型转换。9枚举类型是一种用户自定义的数值类型,它提供了一种简便可以创立一组有构造的符号来表示常量值,有助于程序设计人员更好地调试和维护程序。D枚举类型的定义枚举定义用于定义新的枚举类型。枚举声明以关键字enum开场,然后定义枚举的名称、可访问性、基类型和成员。语法如下:访问修饰符enum枚举标识名:枚举基类型默认的基类型为int枚举成员整二型常数,枚举成员整二型常数L.;枚举成员不能同名2)枚举成员的赋值在定义的枚举类型中,每一个枚举成员都有一个常量值与其对应默,认情况下枚举的基类型为int,而且规定第一个枚举成员的取值为O,它后面的每一个枚举成员的值加1递增。(1)如果*一枚举成员赋值了,则枚举成员的值就以赋的值为准。在它后面的每一个枚举成员的值加1递增,直到下一个赋值枚举成员浮现为止。(2)每一个枚举成员都有一个关联的常量值。该值的类型是包含该值的枚举的基类型。每个枚举成员的常量值必须在该枚举的基类型的范围内。(3)多个枚举成员可以共享一样的常量值。3)枚举成员的访问在C*中可以通过枚举名和枚举变量这两种方式来访问枚举成员。(1)通过枚举名访问枚举成员的形式如下:枚举名.枚举成员;(2)在通过枚举变量访问枚举成员之前,首先要定义一个枚举类型变量。语法如下:枚举类型名变量名;然后再通过枚举变量访问枚举成员,语法如下:枚举变量名.枚举成员10 .构造类型构造类型也是一种用户自定义的数值类型,它是指一组由各种不同数据类型的相关数据信息组合在一起而形成的组合类型。把一系列相关的变量组织成为一个单一实体的过程,称为生成构造的过程。这个单一实体的类型就叫做构造类型。D构造的定义构造的定义语法如下:访问修饰符Struct构造标识名【:基接口名列表构造成员定义)说明:(1)构造成员包括各种数据类型的变量、构造函数、方法、属性、索引器。(2)构造可以实现接口。口举例1:构造的定义口structjudge口stringname;口floatscore;口)2)构造类型成员的访问用构造变量访问构造成员。在通过构造变量访问构造成员之前首先要定义一个构造类型变量。语法如下:构造类型名变量名;然后再通过构造变量访问构造成员,语法如下:构造变量名.构造成员;口举例2:构造类型变量的定义口judgejudgel;judge!name=Console.ReadLine();3)构造与类的区别(1)两者的类型不同,构造是数值类型,类是引用类型。(2)构造的静态字段可以初始化,构造实例字段声明还是不能使用初始值设定项,而类都可以。(3)构造不能声明默认构造函数(没有参数的构造函数或者)析构函数,也就是说构造可以声明构造函数,但它们必须带参数,而类都可以。(4)构造的实例化可以不使用new运算符,而类都不可以而类的实例化都必须使用new运算符.(5) 一个构造不能从另一个构造或者类继承,而且不能作为一个类的基。所有构造都直接继承自System-VaIueType,而类继承自System.Object。(VaIueType派生自Obyect,最终基类都是ObjeCt。)如何选择使用构造还是类,可以参照以下几点。(1)堆栈的空间有限,对于大量的逻辑的对象,创立类要比创立构造好一些。(2)构造表示如点、矩形和颜色这样的轻量对象,例如(3)在表现抽象和多级别的对象层次时,类是最好的选择。(4)大多数情况下该类型只是一些数据时,构造是最正确的选择。11 .类型崭奂在程序设计中,有时要发展数据类型的相互转换,如被赋值的变量或者方法的形式参数的类型与实际的对象类型不同,就需要发展类型转换。C*中有两种转化方式:隐式转换和显示转换。当发生类型转换时,被赋值的变量或者方法的形参的类型称为目标类型,而实际对象的类型称为源类型。1)隐式转换当发生类型转换时,如果在代码中没有明确指定目标类型,则称为隐式转换。也就是说隐式转换是系统默认的、不需要加以声明就可以发展的转换。在隐式转换过程中,编译器不需要对转换发展详细的检直就能安全地执行转换。小类型->大类型安全的转换不会丧失数据】系统自动完成注意:(1)从int、Uint或者long到float的转换以及从long到double的转换的精度可能会降低,但数值大小不受影响。(2)不存在到Char类型的隐式转换。(3)不存在浮点型与decimal类型之间的隐式转换。2)显式转换当发生类型转换时,如果在代码中明确指定目标类型,则称为显式转换。显式转换也称为强制型转换,普通在不存在该类型的隐式转换时才使用。语法格式如下:(类型标识符)表达式这样就可以将表达式的值的数据类型转换为类型标识符的类型。例如:(int)6.143把float类型的6.143转换为int类型大类型->小类型不安全的转换可能丧失数据显式声明3)负责数据类型转换的Convert类Convert类用于将一个根本数据类型转换为另一个根本期g类型,返回与指定类型的值等效的类型;心海原ean、CharxSBytexByte、Iml6、Int32、Int64、Ulntl6、Ulnt32、UInt64、Single、Double、Decimal、DateTimeffiString。属于显示转换常用于不同类型之间的数据转换(1)从*数据类型到它本身的转换只返回该数据类型,不实际执行任何转换。(2)无法产生故意义的结果的转换引起InVaIidCaStE*ception(指定的转换无效的)异常,裾际执行任何转换。以下转换会引起异常:从Char超为BoOIean、SinglesDouble.DeCimaI或者DateTime,以及从这些类型转换为Char;还有从DateTime转换为除String之外的任何类型,以及从任何类型(String除外)转换为DateTimeo(3)任何数据类型(上面描述的数据类型除外都)可以与任何其他数据类型发展相互转换。4)数据类型转换的ParSe()方法每一个数值数据类型都包含一个ParSe()方法,它允许将字符串转换成对应的数值类型。例如:stringsl=9,s2=9.423;intm=int.Parse(sl);将Sl转换成整数类型Floatn=float.Parse(s2);将s2转换成浮点类型Random类中ne*t方法的使用例子:Randomrd=newRandomQ;intn=rd.Ne*t(100,500)这样N就是一个100到500之间的一个随机数。Math类中Sqrt方法的使用Math.Sqrt常量、变量或者表达式;返回指定数字的平方根。运算符是表示各种不同运算的符号。表达式是由变量、常量、数值和运算符组成的,是用运算符将运算对象连接起来的运算式。表达式在经过一系列运算后得到的结果就是表达式的结果,结果的类型是由参加运算的操作数据的数据类型决定的。C*语言中有丰富的运算符。在U中运算符的种类分为以下几类。1 .算术运算符算术运算符用于各类数值运算,包括加(+)、减()、乘(*)、除(/)、求余或者(称模运算,)、自增(+)、自减(一)共7种。其中是求余运算,例如:"*=7%3",则的*值为1,因为7/3的余数为1。由算术运算符将运算对象连接起来的式子叫做算术表达式。有一些特殊的运算,例如开方、平方,U没有提供相S的算术运算符但。在SyStem命名空间里的Math类提«了这样的运算。常用的方法有以下几种。(1) Math.Abs(数据类型*):返回的*绝对值。(2) Math.pow(double*,doubley):返回的*y次方。(3) Math.sqrt(double*):返回的*开根号值。还有一种产生随机数的Random类,它的方法要用Random类的对象来调用。常用的方法有以下几种。(1) Ne*t():返回一个整数的随机数。(2) Ne*t(intma*value):返回小于指定最大值的正随机数。(3) Ne*t(intminvalue,intma*value):返回一个大于等于minvalue且小于ma*value的整数随机数。(4) Ne*tDouble():返回一个0.01.0之间的double精度的浮点随机数。2 .关系运算符关系运算符用于比拟运算,比拟两个值的大小。关系运算符包括大于()、小于()、等于(二二)、大于等于(=)、小于等于(二)和不等于(!二)6种。关系运算的结果类型是布尔类型。如果关系运算两边的运算对象是布尔类型的对象,则true等于true,false等于false,而true是大于false的。由关系运算符将运算对象(表达式)连接起来的式子叫做关系表达式。3 .逻辑运算符逻辑运算符用于逻辑运算,包括与(&&)、或者(|。、非(!)共3种。逻辑运算的结果类型是布尔类型,而且逻辑运算两边的运算对象的数据类型都为布尔类型。与运算的结果为:惟独两个运算对象都为true时,结果才为true;只要有一个是false,结果就为falseo或者运算的结果为:两个运算对象中只要有一个为true时,结果就为true;惟独两个运算对象都是false,结果才为false。非运算的结果是原运算对象的逆:如果原运算对象是true,则运算结果为false;如果原运算对象是false,则运算结果为true0由逻辑运算符将运算对象(逻辑值或者表达式)连接起来的式子叫做逻辑表达式。4 .位操作运算符参预位操作运算的量,按二进制位发展运算。位操作运算符包括位非()、位与(&)、位或者(I)、位异或者(八)、左移()、右移()共6种。1)位逻辑非运算位逻辑非运算是单目的,惟独一个运算对象。位逻辑非运算按位对运算对象的值发展非运算,即:如果*一位等于0,就将其转变为1;如果*T立等于1,就将其转变为0。例如,对二进制的10010001发展位逻辑非运算,结果等于01101110,用十进制表示就是145等于110;对二进制的OlOlOlOl发展位逻辑非运算,结果FIoIolO10。用+»制表585行176。2)位逻辑与运算位逻辑与运算是将两个运算对象按位发展与运算。与运算的规则是:1与1等于1,1与0等于0°例如,IoOlOoOi(二进制)&imoooo等于100loOOO(二进制)。3)位逻辑或者运算位逻辑或者运算是将两个运算对象按位发展或者运算。或者运算的规则是:1或者1等1,1或者0等于1,。或者0舒0。例如,100loOOI(二进)111:LlOOOO(二进制)等于IlI100OI(二进制)。4)位逻辑异或者运算位逻辑异或者运算是将两个运算对象按位发展异或者运算。异或者运算的规则是:1异或者1等于0,1异或者0等于1,0异或者0等于0。即:一样得0,相异得1。例如,IOo10001(二进制11110000(二进制)等于Ol100OOl(二进制)o5)位左移运算位左移运算是将整个数按位左移假设干位,左移后空出的局部填0。例如,8位的byte型变量bytea=0*65即(二进制的01100101),将其左移3位(a3的)结果是0*27即(二进制的001010)6)位右移运算位右移运算将整个数按位右移假设干位,右移后空出的局部填0。例如,8位的byte型变量bytea=0*65即(二进制的OlIoOlol)将其右移3位(a>>3的)结果是0*0C即(二进制的00001100)o5 .运算符赋值运算符用于赋值运算,就是将一个数据赋予一个变量,它分为3类:(1)简单赋值(二)、(2)复合算术赋值(+=,-=,*=,/=,%=)(3)复创逅Sm值(&=,I=,=,»=,«=洪11种。算术表达式由:赋值运算符将运算对象(变量和表达式)连接起来的式子。6 .条件运算符条件运算符是一个三目运算符,用于条件求值(":)。语法如下:逻辑表达式.语句1:语句2;说明:上述表达式先判断逻辑表达式是true,还是false0如果是true,则执行语句1;如果是false,则执行语句2°由条件运算符和表达式组成的式子叫做条件表达式。7 .逗号运算符用于把假设干表达式组合成一个表达式(,)。8 .特殊运算符有括号()、下标等几种。9 .其他转换用运算符1) asas运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定类型兼容,转换就会成功;如果类型不兼容,则返回null0语法如下:表达式as类型例如:objectol=*SomeString*;objecto2=5;stringsl=olasString;类型兼容sl=*SomeString4rstrings2=o2asstring;/s2=null2) isis运算符用于检查对象的类型是否与给定类型兼容对(象是该类型,或者是派生于该类型)。语法如下:表达式is类型例如:inti=10;bool*=iisint;/*=true3) sizeofSiZeof运算符用于获得值类型的大小(以字节为单位)。语法如下:sizeof(类型标识符)说明:SiZeof运算符仅合用于值类型,而不合用于引用类型。SiZeof运算符仅可用于UnSafe模式。例如:unsafeConsole.WriteLine("0*,sizeof(int);结果是4,每一个int类型变量占4个字节4) CheCked和uncheckedCheCked和unchecked运算符用来控制整数类型算术运算和相互转换的溢出检查。语法如下:CheCked(表达式)UnCheCked(表达式)说明:checked运算符用来强制编译器检查是否溢出的问题;unchecked运算符用来强制编译器不检查这方面的问题。10.运算符的优先级一个表达式中往往包含多种运算符,则哪个运算符先执行,哪个运算符后执行呢.在C*中,把每一个运算符设置成不同的级别来决定运算符执行的先后顺序,这个级别就叫做运算符的优先级。运算符的优先级高的就优先执行,运算符的优先级低的就后执行。第3章:c*程序设计C*程序设计中有三大程序构造,分别为:顺序构造选择构造循环构造这3种程序构造都是可以嵌套、组合使用的。顺序构造是由一系列的语句所构成的,其中任何一条语句都会被执行一次,而且执行的顺序是由程序的第一行向来执行到完毕为止。选择构造可以让程序在执行时能够选择不同的操作,则选择的标准是根据指定的条件是否成立而确定的。C*中有以下几种语句来实现选择构造。1i储句i储句根据条件判断该执行哪个选择,可提供一种、两种或者多种选择,但每次只会执行一个选择。(1)简单的i储句,提供一种选择,语法如下:if(条件)语句序列当满足条件,就执行语句序列,否则跳过i储句,执行ifi吾句后面的程序.(2) if-else语句,提供两种选择,语法如下:if(条件)语句序列1当满足条件时执行else语句序列2当不满足条件时执行(3) elseifi吾句,提供多种选择,语法如下:if(条件D(4) 序列1当满足条件1时执行,然后执行elsei储句块后面的程序elseif(条件2)语句序列2当满足条件2时执行,然后执行elseiR吾句块后面的程序elseif(条件3)语句序列3当满足条件3时执行,然后执行elseifi吾句块后面的程序还可以加任意个"elseif(条件)语句序列“else语句序列n+l当所有条件都不满足时执行2.SWitCh语句SWitCh语句也是提供多种选择的语句。语法如下:SWiteh(表达式)CaSe可能性的值1 :语句序列1 break;CaSe可能性的值2 :语句序列句break;default:语句序列n+1break; if (score >= 90) c= 'a'elseif(score>=80)c='b'elseif(score>=70)c=,c,;elseif(score>=60)c=,d,;else c= ,e,;switch(c)case ,a,:Console. WriteLine("优秀!"); break;case b :Console. WriteLine(良"好!"); break;case 'c':Console. WriteLine( SiS!"); break;case 'd':COnSOle.WriteLine( "普通!"); break;case ,e,:if (score >= 90)ConSc)Ie.WriteLineC1优秀!"); else if (score >= 80)Console. WteLine("5?!");else if (score >= 70)ConSole. WriteLine("普通!"); else if (score >= 60)ConSole.WriteLine("及格!"); elseConSOle.WriteLine("不合格!");ConSOle.WMeLine("普通!");break;执行SWitCh语句的步骤为:(1)当代码执行到此语句时,先执行SWitCh后面(中)的表达式。(2)然后将表达式的运算结果与中CaSe后面”可能性的值逐个匹配,如果与*个"可能性的值匹配成功,则进入相对应的CaSe代码段,如果匹配都不成功,则进入default语句,执行默认代码段。(3)如果没有default语句,则跳出SWitCh语句。其中,每一个CaSe代码段内都应该带有一个break语句,用来从当前选择中跳出,如果没有break语句,则不跳出选择,执行CaSe后面的语句。1 .CheCked属性CheCked属性是单项选择按钮、复选框的一个属性,它表示单项选择按钮、复选框是否被选中。true表示单项选择按钮、复选框被选中,false表示未被选中。2 .Enabled属性EnabIed属性允许在运行时使窗体和控件成为有效或者无效。有效为true,无效为false3 .CheCkedChanged事件当CheCked属性值改变时,触发CheckedChangedWno中选中“普通会员"单项选择按钮时,就触发了它的CheCkedChanged事件,普通会员是不可选择"赠送礼品的,所以设置"赠送礼品"复选框的EnabIed属性为false同理中选中"VIP”单项选择按钮时,就触发了它的CheCkedChanged事件,VlP是可以选择"赠送礼品的,所以设置"赠送礼品复选框的Enabled属性为truec循环构造是在给定条件成立时,反复执行*程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。4 .While语句WhiIe语句先计算表达式的值,值为true则执行循环体;反复执行上述操作,直到表达式的值为false时止。语法如下:while(表达式)循环体)执行WhiIe语句的步骤为:(1)执行While后面(中)的表达式;(2)当表达式的运算结果为true则,执行循环体,否则跳过步骤(3),直接执行步骤(4);(3)反复执行(1)、(2)步骤,直到表达式的运算结果为false时止;(4)执行While语句块后面的代码。说明:(I)WhiIe语句中的表达式普通是关系表达式或者逻辑表达式,只要表达式的值为true即可继续循环;(2)应注意循环条件的选择以防止死循环;(3)假设循环体中又含有"循环语句,则称为嵌套的循环语句,也称多重循环。5 .do-while语句do-while语句先执行循环体语句一次,再判别表达式的值,假设为true则继续循环,否则终止循环。语法如下:do循环体while(表达式);说明:(l)do-while语句和WhiIe语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体,而WhiIe是先判断后执行,如果条件不满足,则一次循环体语句也不执行;(2)在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号;(3)do-while语句也可以组成多重循环,而且也可以和WMe语句相互嵌套。f。谄句和WhiIe语句一样,也是一种循环语句,用来重复执行一段代码。两个循环语句的区别就是使用方法不同。f。谄句的使用语法如下:for(表达式1;表达式2;表达式3)循环体)执行f。话句的步骤为:(1)计算表达式1的值;(2)计算表达式2的值,假设值为true,则执行循环体一次,否则跳出循环;(3)计算表达式3的值,转回第(2)步重复执行。说明:(1)表达式1通常用来给循环变量赋初值,普通是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。(2)表达式2通常是循环条件,普通为关系表达式或者逻辑表达式。(3)表达式3通常可用来修改循环变量的值,普通是赋值语句。(4)这3个表达式都可以是逗号表达式,即每一个表达式都可由多个表达式组成。3个表达式都是任选项,都可以省略但分号间隔符不能少。如for(;表达式;表达式)省去了表达式1,for(表达式;表达式)省去了表达式2,for(表达式;表达式;)省去了表达式3zfor(;)省去了全部表达式。(5)在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算屡次。循环体可能执行屡次,也可能一次都不执行。2.break/continue控制循环在WhiIe和f。循环语句中,如果满足条件,则循环会向来继续下去,则该如何自动控制循环的中断和继续呢.C*提供了break/continue语句,用来控制循环的执行。break可以中断当前正在执行的循环,并跳出整个循环。continue表示中断当前本次的循环,而后面的代码无需执行,并发展下一次表达式的计算与判断,以决定是否重新开场下一次循环。break语句还可以和SWitCh语句配合使用,以在到达*种条件时从SWitCh语句跳出。break语句语法如下:break;ContinUe语句语法如下:continue;例:intn=0zm=0;for(i=l;i<=10;i+)if(i%2=0)continue;n+;for(i=l;i<=10;i+)if(i%2=0)continue;n+;第4章:方法采用两种方法解决本案例提出的问题。(1)从现有知识出发解决输出圣诞树问题,不使用方法,把所有的代码都编写在Main中。(2)使用方法来解决输出圣诞树问题。将使得“打印等腰三角形这个根本操作一次编写,屡次使用,提高了代码复用率也提高了程序的可读性。1 .使用方法的意义将一个复杂的程序分解成假设干个相对独立的方法,使得程序变得简炼并且构造清晰。方法可以被屡次调用,反复执行,这样大大地提高了代码的复用率。此外程,序的分块设计也便于开辟人员的分工合作、便于调试和维护,从而大大提高了编程效率。2