第5章整理ppt.ppt

上传人:本田雅阁 文档编号:2550905 上传时间:2019-04-07 格式:PPT 页数:32 大小:638.51KB
返回 下载 相关 举报
第5章整理ppt.ppt_第1页
第1页 / 共32页
第5章整理ppt.ppt_第2页
第2页 / 共32页
第5章整理ppt.ppt_第3页
第3页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第5章整理ppt.ppt》由会员分享,可在线阅读,更多相关《第5章整理ppt.ppt(32页珍藏版)》请在三一文库上搜索。

1、第五章,流程控制,课程目标,理解编程中解决流程问题的基本方法 if和if/else选择结构的用法 switch/case的使用 运用循环控制while、dowhile、for、foreach编程 跳转控制语句break、continue的作用 掌握异常处理,体验,要求用户输入1100之间的数字,此后程序随机产生两个1100之间的数字。 如果用户输入的数字在这两个随机数间,程序提示成功通关,否则程序提示通关失败。,常用流程控制语句,选择控制:if、else、switch、case 循环控制:while、do、for、foreach 跳转语句:break、continue 异常处理:try、cat

2、ch、finally/着重理解,选择结构 3-1,语法: if () else ,选择结构用于根据表达式的值执行语句,if else,语法: if () else if () else ,示例,举一个例子,设有一个数学函数的表达式为: -1 (x0),/部分运行代码 if(x0) y = 1; else if(x=0) y = 0; else y = -1; ,选择结构 3-2,语法: switch (选择变量) case 值1: break; case 值2: break; case 值3: break; . . default : ,switchcase,假设考查课程的成绩按优秀、良好、中

3、等、及格和不及格分为五等,分别用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=0; ,switchcase 的其他特性,选择结构 3-3,各个 case 标签不必连续,也不必按特定顺序排列 d

4、efault 标签可位于 switchcase 结构中的任意位置 default 标签不是必选的,但使用 default 标签是一个良好的编程习惯 每两个 case 标签之间的语句数不限,循环结构,循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。 循环结构的类型 while 循环 do 循环 for 循环 foreach 循环,while 循环 2-1,打印出变量的值,增加变量值,while (seat =1000),1,2,1000,输出11000,如何实现呢?,while 循环反复执行指定的语句,直到指定的条件为真 语法 : while (条件) / 语句 br

5、eak 语句可用于退出循环 continue 语句可用于跳过当前循环并开始下一循环,while 循环 2-2,dowhile 循环 2-1,do,打印出变量的值,增加变量值,while (seat = 1000),1,2,1000,先必须输出1,然后再到1000,如何实现呢?,dowhile 循环 2-2,dowhile 循环与 while 循环类似,二者区别在于 dowhile 循环中即使条件为假时也至少执行一次该循环体中的语句。 语法 : do / 语句 while (条件),for 循环,for 循环要求只有在对特定条件进行判断后才允许执行循环 这种循环用于将某个语句或语句块重复执行预定

6、次数的情形 语法 : for (初始值; 条件; 增/减) /语句 ,foreach 循环 2-1,foreach 循环用于遍历整个集合或数组 语法: foreach (数据类型 元素(变量) in 集合或者数组) /语句 ,foreach 循环,static void Main(string args) / 存放字母的个数 int countLetters = 0; / 存放数字的个数 int countDigits = 0; / 存放标点符号的个数 int countPunctuations = 0; / 用户提供的输入 string input; Console.WriteLine(“请

7、输入一个字符串 “); input = Console.ReadLine(); / 声明 foreach 循环以遍历输入的字符串中的每个字符。 foreach(char chr in input) / 检查字母 if(char.IsLetter(chr) countLetters+; / 检查数字 if(char.IsDigit(chr) countDigits+; / 检查标点符号 if(char.IsPunctuation(chr) countPunctuations+; Console.WriteLine(“字母的个数为: 0“, countLetters); Console.Write

8、Line(“数字的个数为: 0“, countDigits); Console.WriteLine(“标点符号的个数为: 0“, countPunctuations); ,为所有计数器设置初始值,接受输入,对输入的每一个 字符都进行循环,使用了所有输入的字符 之后,循环自动终止,异常,网上银行,张三转帐25000到李四的帐面上,0,20,000,数据库,系统将查询发送到数据库中,tranfer_money() sendquery(); . .,余额 20000-25000,程序崩溃,拒绝交易,“C#”中的异常,C# 中引发异常的条件,异常可以以两种不同的方式引发: throw语句无条件,即时的

9、抛出异常。 C#语句和表达式执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常。 例如,整数除法操作分母为零时将抛出一个System.DivideByZeroException异常。,C# 中的异常处理语句,异常是由try语句来处理的 try语句提供了一种机制来捕捉块执行过程中发生的异常 以下是它的三种的形式: try-catch try-finally try-catch-finally,Try语句具体格式,try / Code to try here. catch (System.Exception ex/异常类) / Code to handle exception he

10、re. try / Code to try here. Finally/ / Code to execute after try here. ,try / Code to try here. catch (System.Exception ex) / Code to handle exception here. finally / Code to execute after try (and possibly catch) here. ,System.Exception 3-1,System.Exception 3-2,try 和 catch 块 3-1,try /程序代码 catch (IO

11、Exception E) /错误处理代码 ,I/O 设备可以生成错误,try 和 catch 块 3-2,try /程序代码 catch( E) /错误处理代码 ,可处理系统中的任何一种异常,System.Exception,try 和 catch 块 3-3,if (UserInput 100) throw new InvalidNumberInput (UserInput + “不是有效输入 (请输入 1 和 100 之间的数字)”); ,throw 可用来引发自定义异常“InvalidNumberInput”,使用 finally,try /程序代码 catch /错误处理代码 fina

12、lly /finally 代码 ,无论控制流如何都会执行,多重 catch 块 2-1,try /程序代码 catch (IOException E) /错误处理代码 catch (OutOfMemoryException E) /错误处理代码 ,用于捕捉两种异常的“catch”块,多重 catch 块 2-2,public class MyCustomException : System.ApplicationException public MyCustomException(string message):base(message) try quotient = dividend /di

13、visor; catch(MyCustomExeption ex) Console.WriteLine(ex.Message); ,. . if(divisor = 0) throw new MyCustomException(“除数不能为零“); ,示例-建立自定义异常3-1,using System; namespace Exceptions /用户定义异常 class OverdrawnException : ApplicationException /余额 public double Balance; public OverdrawnException(string message,

14、double balance) : base(message) this.Balance = balance; ,示例-建立自定义异常3-2,class SavingsAccount private int accountNumber; private double balance; public SavingsAccount(int accountNumber, double balance) this.accountNumber = accountNumber; this.balance = balance; /支出 public void Withdraw(double amount)

15、balance -= amount; if (balance 0) /透支 throw new OverdrawnException(“透支“, balance); ,示例-throw自定义异常3-3,class SavingsAccountTest static void Main() try SavingsAccount account = new SavingsAccount(12345, 2000); /支出 account.Withdraw(3000); catch (OverdrawnException e) Console.WriteLine(e.Message); Console.WriteLine(e.Balance); Console.Read(); ,总结,理解编程中解决问题的基本技巧 if和if/else选择结构的用法 switch/case的使用 运用循环控制while、dowhile、for、foreach编程 跳转控制语句break、continue的作用 掌握异常处理,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1