您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > Java语言程序设计实用教程第四讲控制结构
SISEJava语言程序设计实用教程Java语言程序设计实用教程SISEJava语言程序设计实用教程第四讲控制结构SISEJava语言程序设计实用教程3本章学习要点:掌握分支语句的运用掌握循环语句的运用理解Java中的异常处理掌握Java中的程序逻辑表示SISEJava语言程序设计实用教程4.1分支SISEJava语言程序设计实用教程条件语句if(条件表达式)语句块;else语句块;多重嵌套的if语句if(条件1)语句块1;elseif(条件2)语句块2;elseif(条件3)………else语句块n;SISEJava语言程序设计实用教程switch开关语句switch(表达式){case判断值1:语句组1;case判断值2:语句组2break;……default:语句组n;}switch的常量和表达式可以是整型、字符型及byte型任何两个case常量不可以有相同的值。只能对等式进行测试,根据表达式取值的不同转向不同的分支。每个case分支中的语句块无须用花括号括起来。每个case分支都只是入口点break语句是转移语句(转出switch)SISEJava语言程序设计实用教程4.2循环SISEJava语言程序设计实用教程循环语句while(表达式)do{语句组;语句组;}while(表达式);for(表达式1;表达式2;表达式3)语句组;表达式1:循环变量赋初值,可使用外部没有定义的循环变量表达式2:循环条件表达式3:循环变量修正SISEJava语言程序设计实用教程转移语句(一)没有goto语句break从一个封闭的语句,如switch循环中跳出来break标号从包含本break语句的标号指示的封闭语句中跳出来。while(e1){lable1:while(e1){while(e2){while(e2){……break;breaklable1;}}-}}SISEJava语言程序设计实用教程转移语句(二)continue(用在循环体中)提前结束本次循环,即跳过后面的循环体语句,回到循环的条件测试部分继续执行。continue标号提前结束标号所指循环。通常是某外层循环。continue不是goto语句,标号不能指向与本循环并列的循环或其他循环,也不可指向非循环语句。SISEJava语言程序设计实用教程4.3异常SISEJava语言程序设计实用教程异常处理基本概念早期的编程语言(比如C语言)没有异常处理,通常是遇到错误返回一个特殊的值或设定一个标志,并以此判断是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。于是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句“onerrorgoto”,而Java则在C++基础上建立了新的异常处理机制。Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。SISEJava语言程序设计实用教程异常处理的作用程序在运行时出现错误即产生异常总是有可能发生的,如果我们置之不理,程序就有可能非正常终止,并可能导致严重问题。但现在,我们可以使用Java的异常处理机制来处理运行时错误,防止程序非正常终止,使程序继续顺利执行,从而达到开发出比较健壮的程序的目的,这就是异常的应用。另外,我们也可通过使用异常类获取关于程序错误的信息,进而消除由异常引起的问题。SISEJava语言程序设计实用教程使用try-catch-finally进行异常处理语句格式try{statements//可能产生异常的程序代码}catch(ExceptionType1e){//ExceptionType1类型异常的catch子句statements//出现ExceptionType1类型异常时的处理程序}catch(ExceptionType2e){//ExceptionType1类型异常的catch子句statements//出现ExceptionType1类型异常时的处理程序}……finally{statements//异常处理程序结构的统一出口}SISEJava语言程序设计实用教程异常结构的执行流程在异常的捕获处理时,程序块的执行是非连续的,为了确保不管异常发生与否,有些代码都能得到执行,可以使用finally语句。SISEJava语言程序设计实用教程使用多catch语句时的注意事项若使用多个catch,catch捕获的异常应遵循这样的原则:catch子句应按先子类异常再父类异常的顺序排列,否则,子类异常将被父类异常对应的catch从句所捕获。SISEJava语言程序设计实用教程Java中的异常类在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Throwable类有两个标准子类:java.lang.Error和java.lang.ExceptionError类一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类错误无法恢复或不可能捕获,将导致应用程序中断。异常Exception类则是指一些可以被捕获且可能恢复的异常情况SISEJava语言程序设计实用教程一个简单的例子publicclassDemoexcp{publicstaticvoidmain(String[]args){inta=0;intb=20;intc=b/a;}}该程序当运行到intc=b/a时,会抛出一个异常,程序流将会在此处被打断,在这个例子中我们并没有捕获这个异常,所以java默认的异常处理器就发挥作用了。缺省的处理器打印Exception的字符值和发生“异常”的地点。SISEJava语言程序设计实用教程捕获程序的异常通常我们希望自己来处理“异常”并继续运行。可以用try来指定一块预防所有“异常”的的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。publicclassDemoexcp{publicstaticvoidmain(String[]args){inta=0;intb=20;try{intc=b/a;}catch(ArithmeticExceptione){System.out.println(被除数不能为零);}}}SISEJava语言程序设计实用教程抛出自己的异常throw语句用来明确地抛出一个“异常”。throw关键字后面跟着我们要抛出的异常。这个异常可以使我们自己新建的,或者是通过catch捕获到的publicclassThrowDemo{publicstaticvoidmain(String[]args){try{thrownewArithmeticException(hello);}catch(ArithmeticExceptione){System.out.println(被除数不能为零);}}}SISEJava语言程序设计实用教程函数抛出异常throws用来标明一个成员函数可能抛出的各种“异常”。如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。publicclassThrowsDemo{publicstaticintmythrow(intfirst,intsecond)throwsArithmeticException{intc=first/second;returnc;}publicstaticvoidmain(String[]args){intd;try{d=mythrow(20,0);}catch(ArithmeticExceptione){System.out.println(算术错误,被除数不能为零);}}}SISEJava语言程序设计实用教程Finally字句当一个“异常”被抛出时,程序的执行就不再是线性的,跳过某些行,甚至会由于没有与之匹配的catch子句而过早地返回。有时确保一段代码不管发生什么“异常”都被执行到是必要的,关键词finally就是用来标识这样一段代码的。即使没有catch子句,finally程序块也会在执行try程序块后的程序前执行。每个try语句都需要至少一个与之相配的catch子句或finally子句。通常finally子句都用来做一些必须要做的事情,例如关闭打开的文件,释放数据库连接等。SISEJava语言程序设计实用教程Finally实例importjava.io.*;publicclassUntitled1{publicstaticvoidmain(String[]args){PrintWriterout=null;try{out=newPrintWriter(newBufferedWriter(newFileWriter(D:\\test.txt)));out.println(hello);out.flush();}catch(IOExceptionex){System.out.println(IOExceptionwhileopenfile);}finally{out.close();}}}SISEJava语言程序设计实用教程Java异常处理总结总之,“异常”指的是程序运行时出现的非正常情况。在“异常”类层次的最上层的类叫Throwable,它有两个直接的子类:Exception和Error。Java的“异常”处理通过5个关键词来实现:try,catch,throw,throws和finally。try{....}catch(..){....}finally(){....}publlictypefunction()throwsException1,Exception2{....}SISEJava语言程序设计实用教程4.4控制流程SISEJava语言程序设计实用教程程序框图程序框图(也称为流程图)是最常用的一种表示法,它是描述计算机一步一步完成任务的图表,直观地描述程序执行的控制流程,最便于初学者掌握。SISEJava语言程序设计实用教程终端框处理框输入框判断框流程线常用流程图符号(详细参阅P74)表示一个算法的起始和结束表示一个算法输入信息判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”.赋值、计算表示流程的路径和方向SISEJava语言程序设计实用教程三种基本结构(表示一个良好算法的基本单元)①顺序结构②条件结构(选择结构)③循环结构ABPAB成立不成立成立AP不成立AP成立不成立While(当型)循环Until(直到型)循环SISEJava语言程序设计实用教程示例(P75)表示条件判断的程序流程。表示迭代的程序流程SISEJava语言程序设计实用教程实验内容代码实现P75的图4-10编写P76的4.1,4.2,4.3,4.4书上的例题,例4-1至例4-9
本文标题:Java语言程序设计实用教程第四讲控制结构
链接地址:https://www.777doc.com/doc-2879068 .html