《第3章控制结构优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第3章控制结构优秀PPT.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章控制结构现在学习的是第1页,共26页本章学习目标本章学习目标几种分支语句的使用。几种分支语句的使用。熟练使用三种循环语句进行编程。熟练使用三种循环语句进行编程。能应用嵌套循环语句解决较为复杂的问题。会使用会使用break、continue、return语句编程。掌握方法的定义及调用掌握方法的定义及调用语法错误的调试。对对Java程序格式的熟练掌握。程序格式的熟练掌握。现在学习的是第2页,共26页3.1 选择结构 (1)双分支选择结构:if/else语句用来判定一个条件语句用来判定一个条件(布布尔表达式尔表达式),当条件为真,当条件为真(true)时执行一个操作,条件为假(false)时执
2、行另一个操作。(2)(2)单分支选择结构:省略了单分支选择结构:省略了elseelse的的if语句在条件为真时语句在条件为真时执行一个操作,条件为假时则跳过该操作。执行一个操作,条件为假时则跳过该操作。(3)(3)多分支选择结构:switchswitch语句则是根据表达式的值来决定执行许多不同操作中的某一个操作。现在学习的是第3页,共26页3.1.1 if语句 1 1if if语句的基本形式语句的基本形式if(if(布尔表达式)语句区块1 1else 布尔表达式语句区块2 2语句区块1 1 语句区块2 2布尔表达式语句区块2语句区块1现在学习的是第4页,共26页3.1.1 if语句2省略了el
3、se子句的if语句if(布尔表达式)语句区块 语句区块布尔表达式现在学习的是第5页,共26页3.1.1 if语句3 3if语句的嵌套语句的嵌套其形式如下:if(布尔表达式布尔表达式1)语句区块1else if(else if(布尔表达式2)2)语句区块2else if(else if(布尔表达式布尔表达式3)3)语句区块3 .else 语句区块n+1 现在学习的是第6页,共26页4使用if嵌套时的注意事项Java编译器是将else与离它最近的非匹配的if组合在一起,除非用花括号指定不同的匹配方式。现在学习的是第7页,共26页3.1.2 switch语句其格式如下:其格式如下:switch(sw
4、itch(表达式表达式)case case 值值1 1:语句区块:语句区块1 1;break;/break;/分支分支1 1 case case 值值2 2:语句区块:语句区块2 2;break;/break;/分支分支2 2 case case 值值n n:语句区块:语句区块n n;break;/break;/分支分支n n default default:语句区块语句区块n+1n+1;/分支分支n+1n+1 现在学习的是第8页,共26页3.2 循环结构循环语句的作用是反复执行一段程序代码,直到满足终止条件为止。Java语言提供的循环语句有:while语句、do-while语句和for语句。
5、现在学习的是第9页,共26页3.2.1 while语句while语句的一般形式为:while(布尔表达式)循环体语句区块 循环体语句区块布尔表达式现在学习的是第10页,共26页3.2.2 dowhile语句do-while语句的一般形式为:do 循环体语句区块 while(布尔表达式);现在学习的是第11页,共26页3.2.3 for语句for语句的一般形式为:for(初值表达式;布尔表达式;循环过程表达式)循环体程序语句区块初值表达式布尔表达式循环体语句区块循环过程表达式现在学习的是第12页,共26页循环控制要点 1循环控制变量(或循环计数器)的名字,即循环变量名。2循环控制变量的初始值。3
6、每执行一次循环时,循环控制变量的增量(或减量)。4测试循环控制变量的终值条件(即是否继续进行循环)。现在学习的是第13页,共26页3.3 跳转控制语句break语句 continue语句 return语句 现在学习的是第14页,共26页3.3.1 break语句breakbreak语句通常有不带标号和带标号两种形式:语句通常有不带标号和带标号两种形式:breakbreak;break Lab;break Lab;其中:其中:breakbreak是关键字;是关键字;Lab是用户定义的标号。break语句虽然可以独立使用,但通常主要用于switch结构和循环结构中,控制程序的执行流程转移。结构和循
7、环结构中,控制程序的执行流程转移。现在学习的是第15页,共26页3.3.2 continue语句continuecontinue语句只能用于循环结构中,其作用是使循环短路。它有下述两语句只能用于循环结构中,其作用是使循环短路。它有下述两种形式:种形式:continue;continue;continue lab;continue lab;其中:其中:continuecontinue是关键字;是关键字;LabLab为标号。为标号。1 1continuecontinue语句也称为循环的短路语句。在循环结构中,当程语句也称为循环的短路语句。在循环结构中,当程序执行到序执行到continueconti
8、nue语句时就返回到循环的入口处,执行下一次语句时就返回到循环的入口处,执行下一次循环,而使循环体内写在循环,而使循环体内写在continuecontinue语句后的语句不执行。语句后的语句不执行。2 2当程序中有嵌套的多层循环时,为从内循环跳到外循环,可使用带当程序中有嵌套的多层循环时,为从内循环跳到外循环,可使用带标号的标号的continue labcontinue lab语句。此时应在外循环的入口语句前方语句。此时应在外循环的入口语句前方加上标号。加上标号。现在学习的是第16页,共26页3.3.3 return语句return语句用于方法的返回上,当程序执行到return语句时,终止当前
9、方法的执行,返回到调用这个方法的语句。Return语句通常位于一个方法体的最后一行,有带参数的和不带参数的两种形式,带参数形式的return语句退出该方法时并返回一个值。现在学习的是第17页,共26页3.4 方法方法是类的成员,它与类的成员变量一起被封装在类中,方法是类的成员,它与类的成员变量一起被封装在类中,并在类中实现。成员方法描述对象所具有的功能或操作,并在类中实现。成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块。反映对象的行为,是具有某种相对独立功能的程序模块。它与过去所说的子程序、函数等概念相当。一个类或对它与过去所说的子程序、函数等概念相当。一
10、个类或对象可以有多个成员方法,对象通过执行它的成员方法对象可以有多个成员方法,对象通过执行它的成员方法对传来的消息作出响应,完成特定的功能。成员方法一旦传来的消息作出响应,完成特定的功能。成员方法一旦定义,便可在不同的程序段中多次调用,故可增强程序定义,便可在不同的程序段中多次调用,故可增强程序结构的清晰度,提高编程效率。结构的清晰度,提高编程效率。现在学习的是第18页,共26页3.4.1 方法的定义与调用 1方法的定义方法的声明与实现也可分为两部分:方法声明和方法体。声明成员方法的格式如下:(参数列表参数列表)throws 现在学习的是第19页,共26页2方法的分类从成员方法的来源看,可将成
11、员方法分为:从成员方法的来源看,可将成员方法分为:(1)(1)类库成员方法。这是由类库成员方法。这是由JavaJava类库提供的,用户只需要按照类库提供的,用户只需要按照JavaJava提提供的调用格式去使用这些成员方法即可。供的调用格式去使用这些成员方法即可。(2)(2)用户自己定义的成员方法。这是为了解决用户的特定问题,用户自己定义的成员方法。这是为了解决用户的特定问题,由用户自己编写的成员方法。程序设计的主要工作就是编写用由用户自己编写的成员方法。程序设计的主要工作就是编写用户自定义类、自定义成员方法。户自定义类、自定义成员方法。从成员方法的形式看,可将成员方法分为:从成员方法的形式看,
12、可将成员方法分为:无参成员方法。例如,无参成员方法。例如,void printStar()void printStar()带参成员方法。例如,带参成员方法。例如,int add(int x,int y)int add(int x,int y)现在学习的是第20页,共26页3方法的调用方式成员方法的引用可有下述几种方式。成员方法的引用可有下述几种方式。(1)(1)方法语句方法语句 成员方法作为一个独立的语句被引用。例如,程序成员方法作为一个独立的语句被引用。例如,程序Exam3_17.javaExam3_17.java中的中的“add(a,b)add(a,b);”语句就是这种形式。语句就是这种形
13、式。(2)(2)方法表达式方法表达式 成员方法作为表达式中的一部分,通过表达式被引用。例如,程序成员方法作为表达式中的一部分,通过表达式被引用。例如,程序Exam3_17.javaExam3_17.java中的中的“f3=2+add1(f1,f2)f3=2+add1(f1,f2);”语句就是这种形式。语句就是这种形式。(3)(3)方法作为参数方法作为参数 一个成员方法作为另一个成员方法的参数被引用。例如,一个成员方法作为另一个成员方法的参数被引用。例如,语句语句“add(a,add1(f1,f2)add(a,add1(f1,f2);”。更为典型的是,在递归的成员方法中,一个成员方。更为典型的是
14、,在递归的成员方法中,一个成员方法作为它自身的参数被引用。法作为它自身的参数被引用。(4)(4)通过对象来引用通过对象来引用现在学习的是第21页,共26页4引用成员方法时应注意的事项 (1)(1)如果被引用的方法存在于本文件中,而且是本类的方法,如果被引用的方法存在于本文件中,而且是本类的方法,则可直接引用。我们前面列举的例子基本上都是这种情况。则可直接引用。我们前面列举的例子基本上都是这种情况。(2)(2)如果被引用的方法存在于本文件中,但不是本类的方法,则要考虑如果被引用的方法存在于本文件中,但不是本类的方法,则要考虑类的修饰符与方法的修饰符来决定是否能引用类的修饰符与方法的修饰符来决定是
15、否能引用(3)(3)如果被引用的方法不是本文件的方法而是如果被引用的方法不是本文件的方法而是JavaJava类库的方法,则必类库的方法,则必须在文件的开头处用须在文件的开头处用import import 命令将引用有关库方法所需要的信息命令将引用有关库方法所需要的信息写入本文件中。写入本文件中。(4)(4)如果被引用的方法是用户在其他的文件中自己定义的方法,则必如果被引用的方法是用户在其他的文件中自己定义的方法,则必须通过加载用户包的方式来引用。须通过加载用户包的方式来引用。现在学习的是第22页,共26页3.4.2 方法调用时参数的传递可通过如下的格式来引用成员方法:可通过如下的格式来引用成员
16、方法:成员方法名成员方法名成员方法名成员方法名(实参列表实参列表实参列表实参列表)但在引用时应注意下述问题:但在引用时应注意下述问题:(1)(1)对于无参成员方法来说,是没有实参列表的,但方法名后的括弧不能省略。对于无参成员方法来说,是没有实参列表的,但方法名后的括弧不能省略。(2)(2)对于带参数的成员方法来说,实参的个数、顺序以及它们的数据类型必须对于带参数的成员方法来说,实参的个数、顺序以及它们的数据类型必须与形式参数的个数、顺序以及它们的数据类型保持一致,各个实参间用逗与形式参数的个数、顺序以及它们的数据类型保持一致,各个实参间用逗号分隔。实参名与形参名可以相同也可以不同。号分隔。实参
17、名与形参名可以相同也可以不同。(3)(3)实参也可以是表达式,此时一定要注意使表达式的数据类型与形参的数据类型相同,实参也可以是表达式,此时一定要注意使表达式的数据类型与形参的数据类型相同,或者使表达式的类型按或者使表达式的类型按JavaJava类型转换规则达到形参指明的数据类型。类型转换规则达到形参指明的数据类型。(4)(4)实参变量对形参变量的数据传递是实参变量对形参变量的数据传递是“值传递值传递”,即只能由实参传递给形参,而,即只能由实参传递给形参,而不能由形参传递给实参。程序中执行到引用成员方法时,不能由形参传递给实参。程序中执行到引用成员方法时,JavaJava把实参值拷贝把实参值拷
18、贝到一个临时的存储区到一个临时的存储区(栈栈)中,形参的任何修改都在栈中进行,当退出该成员中,形参的任何修改都在栈中进行,当退出该成员方法时,方法时,JavaJava自动清除栈中的内容。自动清除栈中的内容。现在学习的是第23页,共26页3.4.3 方法体中的局部变量(1)在方法体内可以定义本方法所使用的变量,这种变量是在方法体内可以定义本方法所使用的变量,这种变量是局部变量,它的生存期与作用域是在本方法内。离开本局部变量,它的生存期与作用域是在本方法内。离开本方法则这些变量被自动释放。方法则这些变量被自动释放。(2)(2)方法体内定义变量时,变量前不能加修饰符。方法体内定义变量时,变量前不能加修饰符。(3)(3)局部变量在使用前必须明确赋值,否则编译时会出错。局部变量在使用前必须明确赋值,否则编译时会出错。(4)在一个方法内部,可以在复合语句中定义变量,这些变量只在复合语句中有效,这种复合语句也被称为程序块。现在学习的是第24页,共26页3.4.4 方法递归调用直接引用间接引用现在学习的是第25页,共26页3.5 应用实例1、百钱买百鸡问题百钱买百鸡问题 2、分蜂蜜问题分蜂蜜问题 现在学习的是第26页,共26页