1、幻灯片幻灯片 1(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程第第2 2章章 c#c#语言基础语言基础幻灯片幻灯片 2(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程在本章中,您将学习:在本章中,您将学习:使用变量操作符:使用变量操作符:算术算术 算术赋值算术赋值一元一元 比较比较 逻辑逻辑使用条件结构使用条件结构使用循环结构使用循环结构 目标目标幻灯片幻灯片 3(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程应用程序使用操作符来处理用户输入的数据。应用程序使用操作符来处理
2、用户输入的数据。C#C#中的操作符可以分成:中的操作符可以分成:算术操作符算术操作符算术赋值操作符算术赋值操作符一元操作符一元操作符比较操作符比较操作符逻辑操作符逻辑操作符使用操作符使用操作符幻灯片幻灯片 4(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程运算符和表达式Result=number*100变量变量变量变量常量常量操作数表达式操作数和运算符的组合运算符幻灯片幻灯片 5(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程类别类别运算符运算符说明说明表达式表达式算术运算算术运算符符+执行加法运算(如果两个执行加
3、法运算(如果两个操作数是操作数是字符串字符串,则该运,则该运算符用作算符用作字符串连接运算字符串连接运算符符,将一个字符串添加到,将一个字符串添加到另一个字符串的末尾)另一个字符串的末尾)操作数操作数1+1+操作数操作数2 2-执行减法运算执行减法运算 操作数操作数1-1-操作数操作数2 2*执行乘法运算执行乘法运算操作数操作数1 1*操作数操作数2 2/执行除法运算执行除法运算操作数操作数1/1/操作数操作数2 2%获得进行除法运算后的余获得进行除法运算后的余数数 操作数操作数1%1%操作数操作数2 2 将一个数按位取反将一个数按位取反 操作数操作数幻灯片幻灯片 6(共(共30张)张)第第2
4、章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程表达式类型计算方法结果(假定 num1 的值为 5)num2=+num1;前置自加num1=num1+1;num2=num1;num2=6;num1=6;num2=num1+;后置自加num2=num1;num1=num1+1;num2=5;num1=6;num2=-num1;前置自减num1=num1-1;num2=num1;num2=4;Num1=4;num2=num1-;后置自减num2=num1;num1=num1-1;num2=5;Num1=4;幻灯片幻灯片 7(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面
5、向对象编程进行面向对象编程计算结果:计算结果:1、int i=0;bool result=falseresult=(+i)+i=2?true:false;result=true幻灯片幻灯片 8(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程类别类别运算符运算符说明说明表达式表达式三元运算符(条件运算符)?:检查给出的第一个表达式 expression 是否为真。如果为真,则计算 operand1,否则计算 operand2。这是唯一带有三个操作数的运算符 表达式?操作数1:操作数2幻灯片幻灯片 9(共(共30张)张)第第2章章Ver.1.0使用使用C#进
6、行面向对象编程进行面向对象编程2-12为什么?为什么?幻灯片幻灯片 10(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程类别类别运算符运算符说明说明表达式表达式比较运算符检查一个数是否大于另一个数 操作数1 操作数2检查一个数是否小于另一个数 操作数1=检查一个数是否大于或等于另一个数 操作数1=操作数2=检查一个数是否小于或等于另一个数 操作数1=操作数2=检查两个值是否相等 操作数1=操作数2!=检查两个值是否不相等操作数1!=操作数2幻灯片幻灯片 11(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程类别类别运
7、算符运算符说明说明表达式表达式成员访问运算符.用于访问数据结构的成员 数据结构.成员赋值运算符=给变量赋值 操作数1=操作数2逻辑运算符&对两个表达式执行逻辑“与”运算 操作数1&操作数2|对两个表达式执行逻辑“或”运算 操作数1|操作数2!对两个表达式执行逻辑“非”运算!操作数异或表达式1 表达式2幻灯片幻灯片 12(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程运算运算符符计算方法计算方法表达式表达式求值求值结果(假定结果(假定 X=10)+=运算结果=操作数1+操作数2X +=5X=X+515-=运算结果=操作数1-操作数2X -=5X=X-55*
8、=运算结果=操作数1*操作数2X*=5X=X*550/=运算结果=操作数1/操作数2X /=5X=X/52%=运算结果=操作数1%操作数2X%=5X=X%50幻灯片幻灯片 13(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程C#运算符的优先级运算符的优先级优先级说明运算符结合性1括号()从左到右2自加/自减运算符+/-从右到左3乘法运算符、除法运算符、取模运算符*、/、%从左到右4加减法运算符+-从左到右5小于、小于等于大于、大于等于、=从左到右6等于不等于=!=从左到右从左到右7逻辑与&从左到右8逻辑或|从左到右9赋值运算符和快捷运算符=、+=、*=/
9、=、%=、-=从右到左幻灯片幻灯片 14(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程使用条件结构使用条件结构条件结构能够根据与其关联的表达式值选择执行的条件结构能够根据与其关联的表达式值选择执行的语句。语句。评估条件需要比较操作符。评估条件需要比较操作符。各种条件结构是:各种条件结构是:ififelse else 结构结构switchswitchcase case 结构结构幻灯片幻灯片 15(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程if.elseif.else 条件结构后跟一个逻辑表达式,在该表条件结构后
10、跟一个逻辑表达式,在该表达式中比较数据并且根据比较结果作出决定。达式中比较数据并且根据比较结果作出决定。以下是以下是if.elseif.else 结构的语法:结构的语法:if(expression)if(expression)statements;statements;elseelse statements;statements;ifelse 结构结构 幻灯片幻灯片 16(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程if.else if.else 结构可以彼此嵌入。结构可以彼此嵌入。当它们嵌在一起时,结构就是级联的当它们嵌在一起时,结构就是级联的if.
11、else if.else 结结构构ifelse 结构(续)结构(续)幻灯片幻灯片 17(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程 static void Main(string args)Console.WriteLine(请选择要显示的内容请选择要显示的内容);Console.WriteLine(1.开发环境开发环境);Console.WriteLine(2.编程语言编程语言);Console.WriteLine(3.项目类型项目类型);Console.WriteLine(4.退出退出);string i=Console.ReadLine();i
12、f(i=1)Console.WriteLine(microsoft visual basic);else if(i=2)Console.WriteLine(c sharp);else if(i=3)Console.WriteLine(控制台应用程序控制台应用程序);幻灯片幻灯片 18(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程当一个变量有多个值时要用到当一个变量有多个值时要用到switchswitchcase case 结构。结构。以下代码是以下代码是switch.case switch.case 结构的语法:结构的语法:switch(switch(
13、VariableNameVariableName)case ConstantExpression_1:case ConstantExpression_1:statements;statements;break;break;case ConstantExpression_2:case ConstantExpression_2:statements;statements;break;break;case case ConstantExpression_nConstantExpression_n:statements;statements;break;break;default:default:st
14、atements;statements;break;break;switchcase 结构结构幻灯片幻灯片 19(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程问题描述:问题描述:编写一个模拟计算器的程序。计算器应编写一个模拟计算器的程序。计算器应该能够执行以下算术操作:该能够执行以下算术操作:加法加法减法减法乘法乘法除法除法 演示:演示:使用条件结构的计算器使用条件结构的计算器幻灯片幻灯片 20(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程 使用循环结构使用循环结构 循环结构用于重复执行一行或多行代码。循环结构
15、用于重复执行一行或多行代码。C#C#支持以下的循环结构:支持以下的循环结构:while while 循环循环dodowhile while 循环循环for for 循环循环幻灯片幻灯片 21(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程while 循环循环while while 循环结构根据条件来执行一定次数的循环结构根据条件来执行一定次数的语句块。语句块。以下代码是以下代码是while while 循环结构的语法:循环结构的语法:while(expression)while(expression)statements;statements;幻灯片幻灯
16、片 22(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程dowhile 循环循环do.while do.while 循环结构类似于循环结构类似于 while while 循环结循环结构。构。两个结构都要重复执行语句直至指定的循环两个结构都要重复执行语句直至指定的循环条件为条件为falsefalse。以下代码是以下代码是 do.while do.while 循环结构的语法:循环结构的语法:dodo statements;statements;while(expressionwhile(expression););幻灯片幻灯片 23(共(共30张)张)第第2
17、章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程dowhile 循环(续)循环(续)下图显示了下图显示了 do.while do.while 和和 while while 循环结循环结构的区别。构的区别。Falsedo whileFalseTrue执行循环的主体执行循环的主体评估条件评估条件True执行循环的主体执行循环的主体评估条件评估条件while幻灯片幻灯片 24(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程for 循环循环for for 循环结构用于执行特定次数的语句块。循环结构用于执行特定次数的语句块。以下代码是以下代码是for
18、 for 循环结构的语法:循环结构的语法:幻灯片幻灯片 25(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程for 循环(续)循环(续)下图显示了完整的下图显示了完整的 for for 循环结构的执行循环结构的执行顺序。顺序。TrueFalse初始化初始化评估条件评估条件循环主体循环主体退出循环退出循环增量增量/减量减量幻灯片幻灯片 26(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程 演示:演示:使用循环结构的使用循环结构的Fibonacci 级数级数问题描述:问题描述:编写能够生成编写能够生成Fibonacci
19、Fibonacci级数最高至级数最高至200200的程序。的程序。幻灯片幻灯片 27(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程break 和和 continue 语句语句 使用使用 break break 语句退出语句退出forfor循环并停止剩余循环并停止剩余循环的执行。循环的执行。使用使用ContinueContinue语句可以跳出所有后续的指语句可以跳出所有后续的指令并将控制权交回给循环。令并将控制权交回给循环。幻灯片幻灯片 28(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程在本章中,您学习了:在本章
20、中,您学习了:操作符用于计算和比较值并测试多个条件。操作符用于计算和比较值并测试多个条件。使用算术操作符对变量执行算术操作,例如加、使用算术操作符对变量执行算术操作,例如加、减、乘、除。减、乘、除。使用算术赋值操作符执行算术操作并将结果赋使用算术赋值操作符执行算术操作并将结果赋值给变量。值给变量。一元操作符(如增量和减量操作符)对一个操一元操作符(如增量和减量操作符)对一个操作数进行操作。作数进行操作。比较操作符用于比较两个值并根据比较的结果比较操作符用于比较两个值并根据比较的结果执行操作。执行操作。逻辑操作符用于评估表达式并返回布尔值。逻辑操作符用于评估表达式并返回布尔值。小结小结幻灯片幻灯
21、片 29(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程条件结构允许选择执行语句。条件结构允许选择执行语句。C#C#中的条件结构中的条件结构是:是:ififelseelseswitchswitchcasecase当您要对程序的某个部分重复执行一定的次数当您要对程序的某个部分重复执行一定的次数时,可以使用循环结构。时,可以使用循环结构。C#C#提供以下的循环结提供以下的循环结构:构:whilewhiledodowhilewhileforforbreak break 和和 continue continue 语句用于控制循环中的程语句用于控制循环中的程序流。
22、序流。小结(续)小结(续)幻灯片幻灯片 30(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程异常异常幻灯片幻灯片 31(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程异常是在程序执行期间发生的错误情况。异常是在程序执行期间发生的错误情况。当一个异常在程序中发生的时候,系统抛当一个异常在程序中发生的时候,系统抛出一个错误。出一个错误。错误通过异常处理过程被处理。错误通过异常处理过程被处理。描述异常描述异常幻灯片幻灯片 32(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程在程序中
23、发生的错误的类型有三种。它们在程序中发生的错误的类型有三种。它们是:是:语法错误:语法错误:语法错误发生在语句没有适当构造、语法错误发生在语句没有适当构造、关键字被拼错或标点被忽略的时候。关键字被拼错或标点被忽略的时候。运行时错误运行时错误:运行时错误发生在程序试图完成:运行时错误发生在程序试图完成一个操作,但它在运行时不被允许。一个操作,但它在运行时不被允许。逻辑错误逻辑错误:逻辑错误发生在程序编译和运行正:逻辑错误发生在程序编译和运行正常但没有产生预期的结果的时候。常但没有产生预期的结果的时候。让我们了解错误类型的详细信息。让我们了解错误类型的详细信息。错误的类型错误的类型幻灯片幻灯片 3
24、3(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程class ErrorsConsole.WriteLine(“Enjoy Errors”)Console.WriteLine 语句缺少分号语法错误幻灯片幻灯片 34(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程class Errorsint Num1=0;int Num2=20;int Num3;Num3=Num2/Num1;Console.WriteLine(“The Result is 0”,Num3);发生了除以零的情况发生了除以零的情况运行时错误运行时错误
25、幻灯片幻灯片 35(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程class Errorsint Num1=10;int Num2=2;int Num3;Num3=Num2/Num1;Console.WriteLine(“The Result is 0”,Num3);期望结果期望结果=5当前结果当前结果=0逻辑错误逻辑错误幻灯片幻灯片 36(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程许多异常类都直接或间接的派生自许多异常类都直接或间接的派生自System.Exception类。类。这些类有:这些类有:Syste
26、m.ApplicationException 类类System.SystemException 类类异常类异常类幻灯片幻灯片 37(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程System.SystemExceptionSystem.SystemException是所有预定义系统异常的是所有预定义系统异常的基类。下表描述了一些派生自基类。下表描述了一些派生自System.SystemSystem.System ExceptionException类的类:类的类:异常类(续)异常类(续)异常类异常类描述描述System.IO.IOException处理处
27、理I/OI/O错误错误System.IndexOutOfRangeException当方法引用一个界外的数据元素时,处理产当方法引用一个界外的数据元素时,处理产生的错误生的错误System.NullReferenceException处理在解除空对象引用的过程中产生的错误处理在解除空对象引用的过程中产生的错误System.DivideByZeroException 处理在除法中除数为处理在除法中除数为0 0的过程中产生的错误的过程中产生的错误System.InvalidCastException 处理在类型匹配中产生的错误处理在类型匹配中产生的错误System.OutOfMemoryExcep
28、tion 处理程序内存分配的错误处理程序内存分配的错误幻灯片幻灯片 38(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程处理异常处理异常幻灯片幻灯片 39(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程处理异常(续)处理异常(续)try try 块:块:trytry块监视可能抛出异常的语句。以下是块监视可能抛出异常的语句。以下是 try try 块的语法:块的语法:try/statements that may cause an exceptiontrytry块管理包含在它内部的语句,定义与它相关块管理包含在它内部
29、的语句,定义与它相关的异常处理程序的范围。的异常处理程序的范围。trytry块必须至少有一个块必须至少有一个catchcatch块。块。幻灯片幻灯片 40(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程处理异常(续)处理异常(续)catch catch 块:块:catchcatch块的语句使用一个异常类的对象作为参数,块的语句使用一个异常类的对象作为参数,它引用一个产生的异常。它引用一个产生的异常。你可以通过提供一个或更多你可以通过提供一个或更多catchcatch处理程序将一处理程序将一个异常处理程序与个异常处理程序与trytry块相联系,紧挨着块相联
30、系,紧挨着trytry块块之后:之后:try /statements that may cause an exceptioncatch()/error handling code幻灯片幻灯片 41(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程public static void Adding_Numbers(int number1,int number2)try int res=number1/number2;Console.WriteLine(res);catch(DivideByZeroException e)Console.WriteLine(E
31、xception Caught.0,e.Message);Console.WriteLine(After handing exception);static void Main(string args)Adding_Numbers(10,0);Console.Read();幻灯片幻灯片 42(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程多重多重 catch catch 块块try/程序代码catch(IOException E)/错误处理代码catch(OutOfMemoryException E)/错误处理代码用于捕捉两种异常的“catch”块幻灯片
32、幻灯片 43(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程处理异常(续)处理异常(续)finally finally 块:块:finallyfinally块被用于执行一个给定的语句集,不论块被用于执行一个给定的语句集,不论异常是否被抛出。异常是否被抛出。try /statements that may cause an exceptioncatch()/error handling codefinally/statements to be executed演示演示10.9幻灯片幻灯片 44(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向
33、对象编程进行面向对象编程问题描述:问题描述:DavidDavid正在为一个项目工作,其中他正在计算一正在为一个项目工作,其中他正在计算一个整型数组中的总和。个整型数组中的总和。DavidDavid需要处理当他使用需要处理当他使用数组时发生的异常。如果数组时发生的异常。如果DavidDavid在执行程序的时在执行程序的时候遇到了任何异常情况,程序需要显示一个异候遇到了任何异常情况,程序需要显示一个异常消息。常消息。演示:处理数组越界异常演示:处理数组越界异常幻灯片幻灯片 45(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程实现用户自定义异常实现用户自定义异
34、常在在C#C#中,你可以创建你自己的异常类。这种类中,你可以创建你自己的异常类。这种类型的异常被称为用户自定义异常。型的异常被称为用户自定义异常。在在C#C#中中ExceptionException必须是所有异常的基类。必须是所有异常的基类。用户定义异常类必须遵守要么异常类的层次或用户定义异常类必须遵守要么异常类的层次或一个标准的继承类。一个标准的继承类。幻灯片幻灯片 46(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程实现用户自定义异常(续)实现用户自定义异常(续)用户自定义异常类派生自用户自定义异常类派生自ApplicationExceptionAp
35、plicationException类。类。为了实现用户自定义异常,你需要:为了实现用户自定义异常,你需要:生成你自己的异常:你可以使用生成你自己的异常:你可以使用throwthrow语句来产生你自语句来产生你自己的异常。己的异常。抛出对象:你可以抛出一个对象,如果对象是直接或抛出对象:你可以抛出一个对象,如果对象是直接或间接派生自间接派生自System.ExceptionSystem.Exception。你可以使用在。你可以使用在catchcatch块块中的中的throwthrow语句来抛出当前对象,如下面的代码所示:语句来抛出当前对象,如下面的代码所示:catch(Exception ca
36、ught).throw caught幻灯片幻灯片 47(共(共30张)张)第第2章章Ver.1.0使用使用C#进行面向对象编程进行面向对象编程class CountZero static void Main()Calculator calc=new Calculator();try calc.DoAverage();catch(CountIsZeroException e)Console.WriteLine(e.Message);Console.ReadLine();class Calculator int sum=0;int count=0;float average;public void DoAverage()if(count=0)throw(new CountIsZeroException(Zero count in DoAverage);else average=sum/count;class CountIsZeroException:ApplicationException public CountIsZeroException(string message):base(message)