Java语言程序设计实用教程第四讲控制结构_第1页
Java语言程序设计实用教程第四讲控制结构_第2页
Java语言程序设计实用教程第四讲控制结构_第3页
Java语言程序设计实用教程第四讲控制结构_第4页
Java语言程序设计实用教程第四讲控制结构_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java语言程序设计实用教程第四讲 控制结构3本章学习要点:掌握分支语句的运用掌握循环语句的运用理解Java中的异常处理掌握Java中的程序逻辑表示 4.1 分支条件语句if ( 条件表达式 )语句块;else语句块; 多重嵌套的if语句if (条件1) 语句块1;else if (条件2)语句块2;else if (条件3)else语句块n;switch 开关语句switch(表达式)case 判断值1:语句组1 ;case 判断值2:语句组2 break ;default:语句组n; switch 的常量和表达式可以是整型、字符型及byte型任何两个case常量不可以有相同的值。只能对等式

2、进行测试,根据表达式取值的不同转向不同的分支。每个case分支中的语句块无须用花括号括起来。每个case分支都只是入口点break 语句是转移语句(转出switch)4.2 循环循环语句while(表达式) do语句组; 语句组; while(表达式);for ( 表达式1;表达式2;表达式3)语句组;表达式1:循环变量赋初值,可使用外部没有定义的循环变量表达式2:循环条件表达式3:循环变量修正转移语句(一)没有goto语句break 从一个封闭的语句,如switch 循环中跳出来break 标号从包含本break语句的标号指示的封闭语句中跳出来。 while (e1) lable1: whi

3、le (e1) while(e2) while(e2) break; break lable1; 转移语句(二)continue (用在循环体中)提前结束本次循环,即跳过后面的循环体语句,回到循环的条件测试部分继续执行。continue 标号提前结束标号所指循环。通常是某外层循环。continue不是goto 语句,标号不能指向与本循环并列的循环或其他循环,也不可指向非循环语句。4.3 异常异常处理基本概念早期的编程语言(比如C语言)没有异常处理,通常是遇到错误返回一个特殊的值或设定一个标志,并以此判断是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。于

4、是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句“on error goto”,而Java则在C+基础上建立了新的异常处理机制。Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。异常处理的作用程序在运行时出现错误即产生异常总是有可能发生的,如果我们置之不理,程序就有可能非正常终止,并可能导致严重问题。但现在,我们可以使用Java的异常处理机制来处理运行时错误,防止程序非正常终止,使程序继续顺利执行,从而达到开发出比较健壮

5、的程序的目的,这就是异常的应用。另外,我们也可通过使用异常类获取关于程序错误的信息,进而消除由异常引起的问题。 使用try-catch-finally进行异常处理语句格式trystatements /可能产生异常的程序代码catch(ExceptionType1 e) /ExceptionType1类型异常的catch子句statements /出现ExceptionType1类型异常时的处理程序catch(ExceptionType2 e) / ExceptionType1类型异常的catch子句statements /出现ExceptionType1类型异常时的处理程序finallysta

6、tements /异常处理程序结构的统一出口异常结构的执行流程在异常的捕获处理时,程序块的执行是非连续的,为了确保不管异常发生与否,有些代码都能得到执行,可以使用finally语句。使用多catch语句时的注意事项若使用多个catch,catch捕获的异常应遵循这样的原则:catch子句应按先子类异常再父类异常的顺序排列,否则,子类异常将被父类异常对应的catch从句所捕获。Java中的异常类在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。 Throwa

7、ble类有两个标准子类:java.lang.Error和java.lang.ExceptionError类一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类错误无法恢复或不可能捕获,将导致应用程序中断。异常Exception类则是指一些可以被捕获且可能恢复的异常情况一个简单的例子public class Demoexcppublic static void main(String args)int a = 0;int b = 20;int c = b/a;该程序当运行到int c = b/a时,会抛出一个异常,程序流将会在此处被打断,在这个例子中我们并没有捕获这个异常,

8、所以java默认的异常处理器就发挥作用了。缺省的处理器打印Exception的字符值和发生“异常”的地点。 捕获程序的异常通常我们希望自己来处理“异常”并继续运行。可以用try来指定一块预防所有“异常”的的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。public class Demoexcppublic static void main(String args)int a = 0;int b = 20;tryint c = b/a;catch(ArithmeticException e)System.out.println(被除数不能为零);抛出自己的

9、异常throw语句用来明确地抛出一个“异常”。throw 关键字后面跟着我们要抛出的异常。这个异常可以使我们自己新建的,或者是通过catch捕获到的public class ThrowDemopublic static void main(String args)trythrow new ArithmeticException(hello);catch(ArithmeticException e)System.out.println(被除数不能为零);函数抛出异常throws用来标明一个成员函数可能抛出的各种“异常”。如果你想明确地抛出一个RuntimeException,你必须用throws

10、语句来声明它的类型。public class ThrowsDemopublic static int mythrow(int first,int second) throws ArithmeticExceptionint c = first/second;return c;public static void main(String args)int d;tryd = mythrow(20,0);catch(ArithmeticException e)System.out.println(算术错误,被除数不能为零);Finally字句当一个“异常”被抛出时,程序的执行就不再是线性的,跳过某些行

11、,甚至会由于没有与之匹配的catch子句而过早地返回。有时确保一段代码不管发生什么“异常”都被执行到是必要的,关键词finally就是用来标识这样一段代码的。即使没有catch子句,finally程序块也会在执行try程序块后的程序前执行。每个try语句都需要至少一个与之相配的catch子句或finally子句 。通常finally子句都用来做一些必须要做的事情,例如关闭打开的文件,释放数据库连接等。Finally实例import java.io.*;public class Untitled1 public static void main(String args) PrintWriter

12、out = null; try out = new PrintWriter(new BufferedWriter(new FileWriter(D:test.txt); out.println(hello); out.flush(); catch (IOException ex) System.out.println(IOException while open file); finally out.close(); Java异常处理总结总之,“异常”指的是程序运行时出现的非正常情况。在“异常”类层次的最上层的类叫Throwable,它有两个直接的子类:Exception和Error。Java的“异常”处理通过5个关键词来实现:try,catch,throw,throws和finally。try.catch(.).finally().publlic type function() throws Exception1,Exception2.4.4 控制流程程序框图程序框图(也称为流程图)是最常用的一种表示法,它是描述计算机一步一步完成任务的图表,直观地描述程序执行的控制流程,最便于初学者掌握。终端框 处理框 输入框判断框流程线常用流程图符号(详细参阅P74)表示一个算法的起始和结束表示一个算法输入信息判断某一条件是否成立,成立时在出口处标明“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论