《第5章整理ppt.ppt》由会员分享,可在线阅读,更多相关《第5章整理ppt.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章整理ppt Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望课程目标理解编程中解决流程问题的基本方法if和if/else选择结构的用法switch/case的使用运用循环控制while、dowhile、for、foreach编程跳转控制语句break、continue的作用掌握异常处理体验要求用户输入1100之间的数字,此后程序随机产生两个1100之间的数字。如果用户输入的数字在这两个随机数间,程序提示成功通关,否则程序提示通关失败。常用流程控制语句选择控制:
2、if、else、switch、case循环控制:while、do、for、foreach跳转语句:break、continue异常处理:try、catch、finally/着重理解选择结构 3-1语法:if()else q选择结构用于根据表达式的值执行语句if elseif else语法:if()else if()else 示例举一个例子,设有一个数学函举一个例子,设有一个数学函数的表达式为:数的表达式为:-1(x0)-1(x0)1 (x0)/部分运行代码if(x0)y=1;elseif(x=0)y=0;elsey=-1;选择结构 3-2语法:语法:switch(选择变量)case 值1:br
3、eak;case 值2:break;case 值3:break;.default:switchcase switchcase 假设考查课程的成绩按优秀、良好、中等、及格和不及格分为五等,分别用4、3、2、1、0来表示,但实际的考卷为百分制,分别对应的分数为90-100、80-90、60-80、60分以下。下面的程序将考卷成绩x转换为考查课成绩y。代码如下:int x=int(x/10);switch(x)case 10:y=4;break;case 9:y=4;break;case 8:y=3;break;case 7:y=2;break;case 6:y=1;break;default:y=
4、0;switchcase switchcase 的其他特性的其他特性的其他特性的其他特性选择结构 3-3各个 case 标签不必连续,也不必按特定顺序排列default 标签可位于 switchcase 结构中的任意位置default 标签不是必选的,但使用 default 标签是一个良好的编程习惯每两个 case 标签之间的语句数不限循环结构循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。循环结构的类型 while while 循环循环do do 循环循环for for 循环循环foreach foreach 循环循环while 循环 2-1打印出变量的值打印出变
5、量的值增加变量值while(seat=1000)121000输出1.1000如何实现呢?while 循环反复执行指定的语句,直到指定的条件为真语法:while(while(条件条件)/语句语句 break 语句可用于退出循环continue 语句可用于跳过当前循环并开始下一循环 while 循环 2-2dowhile 循环 2-1do打印出变量的值打印出变量的值增加变量值while(seat=1000)121000先必须输出1,然后再到1000如何实现呢?dowhile 循环 2-2dowhile 循环与 while 循环类似,二者区别在于 dowhile 循环中即使条件为假时也至少执行一次该
6、循环体中的语句。语法语法 :dodo /语句语句 while(while(条件条件)for 循环for 循环要求只有在对特定条件进行判断后才允许执行循环 这种循环用于将某个语句或语句块重复执行预定次数的情形 语法语法 :for(for(初始值初始值;条件条件;增增/减减)/语句语句 foreach 循环 2-1foreach 循环用于遍历整个集合或数组循环用于遍历整个集合或数组 语法:语法:语法:语法:foreach(数据类型 元素(变量)in 集合或者数组)/语句 foreach 循环static void Main(string args)/存放字母的个数 int countLetters
7、=0;/存放数字的个数int countDigits=0;/存放标点符号的个数int countPunctuations=0;/用户提供的输入 string input;Console.WriteLine(请输入一个字符串);input=Console.ReadLine();/声明 foreach 循环以遍历输入的字符串中的每个字符。foreach(char chr in input)/检查字母if(char.IsLetter(chr)countLetters+;/检查数字if(char.IsDigit(chr)countDigits+;/检查标点符号if(char.IsPunctuation
8、(chr)countPunctuations+;Console.WriteLine(“字母的个数为:0,countLetters);Console.WriteLine(“数字的个数为:0,countDigits);Console.WriteLine(“标点符号的个数为:0,countPunctuations);为所有计数器设置初始值接受输入对输入的每一个字符都进行循环使用了所有输入的字符之后,循环自动终止异常帐户帐户姓名姓名 余额余额300123张三300124王五47,000311320李四网上银行网上银行张三转帐25000到李四的帐面上020,000数据库系统将查询发送到数据库中系统将查询
9、发送到数据库中tranfer_money()sendquery();.余额 20000-25000 程序崩溃程序崩溃程序崩溃程序崩溃拒绝交易拒绝交易错误错误 系统出现故障系统出现故障“C#”中的异常 C#中引发异常的条件 异常可以以两种不同的方式引发:q throw语句无条件,即时的抛出异常。q C#语句和表达式执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常。例如,整数除法操作分母为零时将抛出一个System.DivideByZeroException异常。C#中的异常处理语句q异常是由try语句来处理的qtry语句提供了一种机制来捕捉块执行过程中发生的异常q以下是它的三种
10、的形式:try-catchtry-finallytry-catch-finally Try语句具体格式trytry /Code to try here./Code to try here.catch(catch(System.Exception System.Exception ex/ex/异常异常类类)/Code to handle exception /Code to handle exception here.here.trytry /Code to try here./Code to try here.Finally/Finally/Code to execute after try
11、/Code to execute after try here.here.trytry /Code to try here./Code to try here.catch(catch(System.ExceptionSystem.Exception ex)ex)/Code to handle exception here./Code to handle exception here.finallyfinally /Code to execute after try(and /Code to execute after try(and possibly catch)here.possibly c
12、atch)here.System.Exception 3-1System.Exception 3-2属性属性MessageSourceStackTraceInnerExceptiontry 和 catch 块 3-1try/程序代码catch(IOException E)/错误处理代码I/O I/O 设备可以生成错误设备可以生成错误try 和 catch 块 3-2try/程序代码catch(E)/错误处理代码可处理系统中的可处理系统中的任何任何一种一种异常异常System.Exceptiontry 和 catch 块 3-3 if(UserInput 100)throw new Invali
13、dNumberInput(UserInput+“不是有效输入(请输入 1 和 100 之间的数字)”);throw 可用来引发自定义异常“InvalidNumberInput”使用 finallytry/程序代码catch/错误处理代码finally/finally 代码无论无论控制流控制流如何都会执行如何都会执行多重 catch 块 2-1try/程序代码catch(IOException E)/错误处理代码catch(OutOfMemoryException E)/错误处理代码用于捕捉两种异常的“catch”块多重 catch 块 2-2public class MyCustomExcep
14、tion:System.ApplicationExceptionpublic MyCustomException(string message):base(message)try quotient=dividend/divisor;catch(MyCustomExeption ex)Console.WriteLine(ex.Message);.if(divisor=0)throw new MyCustomException(“除数不能为零);示例-建立自定义异常3-1using System;using System;namespace Exceptionsnamespace Exceptio
15、ns/用户定义异常用户定义异常class OverdrawnException:ApplicationExceptionclass OverdrawnException:ApplicationException/余额余额 public double Balance;public double Balance;public OverdrawnException(string message,double balance):public OverdrawnException(string message,double balance):base(message)base(message)this.
16、Balance=balance;this.Balance=balance;示例-建立自定义异常3-2class SavingsAccountclass SavingsAccount private int accountNumber;private int accountNumber;private double balance;private double balance;public SavingsAccount(int accountNumber,double balance)public SavingsAccount(int accountNumber,double balance)t
17、his.accountNumber=accountNumber;this.accountNumber=accountNumber;this.balance =balance;this.balance =balance;/支出支出public void Withdraw(double amount)public void Withdraw(double amount)balance-=amount;balance-=amount;if(balance 0)if(balance 0)/透支透支throw new OverdrawnException(throw new OverdrawnExcep
18、tion(透支透支,balance);,balance);示例-throw自定义异常3-3class SavingsAccountTestclass SavingsAccountTest static void Main()static void Main()trytry SavingsAccount account=new SavingsAccount(12345,SavingsAccount account=new SavingsAccount(12345,2000);2000);/支出支出 account.Withdraw(3000);account.Withdraw(3000);cat
19、ch(OverdrawnException e)catch(OverdrawnException e)Console.WriteLine(e.Message);Console.WriteLine(e.Message);Console.WriteLine(e.Balance);Console.WriteLine(e.Balance);Console.Read();Console.Read();总结理解编程中解决问题的基本技巧if和if/else选择结构的用法switch/case的使用运用循环控制while、dowhile、for、foreach编程跳转控制语句break、continue的作用掌握异常处理