第3章 程序流程控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章程序流程控制•任何一门语言都需要基本的流程控制语句,其思想也符合人类判断问题或做事的逻辑过程。在Java语言中提供了判断分支语句,多分支语句、switch语句、循环语句和跳转语句,通过本章的学习,读者可以掌握基本的程序流程,为编写面向对象的程序打基础,在Java中程序流程的控制体现在方法的设计和实现上。本节将依次按照分支语句、循环语句和跳转语句的顺序介绍程序流程。3.1流程控制概述•在面向过程的语言中,程序流程控制是十分重要的内容,因为一个过程总是由各种判断、循环、跳转等实现。在Java这样面向对象的语言中,仍然不可或缺的需要程序的流程控制,因为对象行为(也称为方法)的实现中仍然需要流程控制。流程控制上任何一门高级开发语言都必须认真面对的问题。学习本章时,要求读者认真学习每一小节的内容,掌握语句的语句格式,和用法,模仿书上的例子亲自编写并执行一遍。3.2条件语句•在日常生活中,读者经常会遇到这样的问题:如果明天天气好,就去爬香山。这里如果就是一个判断关键字、而爬香山就是判断成立时的结果。在程序的流程控制中,条件语句就完成这样的功能。简单条件语句的格式为:•If(条件表达式)•执行语句;•if语句中的“条件表达式”的结果是boolean值,无论条件表达式的形式如何体现,但()内的最终结果是个boolean值。如果boolean值为真(true)则执行“执行语句”。如果if后()内的boolean值为假(false)不执行紧“执行语句”,此时跳出if语句。简单if语句的流程图如图3.1所示。3.3分支语句•上节介绍了简单的if语句,在日常生活中其实还存在大量的多重判断,例如:如果明天天气好就去爬香山,如果明天阴天就待在家看电影,如果DVD机坏了就安心看书。显然,这里有两个判断,首先是晴天与阴天的判断。其次是阴天的条件下又有一层判断如果DVD机坏了,就看书。上述说法有些啰嗦,在日常生活中没有人有意识的去做上述的判断。但事实上,在人类生活的潜意识里确实存在这种逻辑判断,只是人与机器相比实在是太聪明了,人积累了大量的逻辑知识和生活经验,不用有意识的思考就可以随时得出逻辑计算的结果。但是,计算机只知道程序,没有程序指令它就无法工作,所以必须在程序设计语言中设计明确的各种指令格式,来满足实现复杂逻辑判断的能力。本节将重点介绍更复杂的逻辑判断,多分支语句。3.3.1简单的if-else语句•简单的if-else语句是多分支语句的一种。其语句格式是:•if(条件表达式)•执行语句1;•else•执行语句2;•如果if条件语句成立,即()内的boolean值为真,则执行语句1,否则if条件语句不成立,即()内的boolean值为假,执行语句2。If-else语句实现了一种是非判断,如果“是”做什么,如果“不是”做什么。3.3.2if-else多分支语句•简单的if-else语句可以嵌套使用以实现更复杂的条件判断,其语句格式是:•if(条件1)•if(条件2);•执行语句1•else•if(条件3)•执行语句3•else•执行语句4;3.3.3if嵌套语句•if嵌套语句也是经常使用的多分支判断语句,在一次判断之后又有新一层的判断,接着又有一层判断,逐渐深入,达到实现复杂判断的目的,这种多层次判断相当于多条件判断,在满足几个条件后再执行适当的语句。If嵌套语句的格式是:•if(条件1)•if(条件2)•if(条件3)•执行语句1;•在if(条件1)成立的条件下继续判断直到if(条件3)也成立,再执行语句1。如果其中有一个条件不满足,则跳出该if嵌套语句,继续执行嵌套语句之外的代码。3.3.4switch语句•switch语句是在多个语句中选择其一执行的语句,其语言格式为:•switch(表达式)•case值1•执行语句1•break;•case值2•执行语句2•break;•case值3•执行语句3•break;•default:•执行语句4•break;3.3.5分支语句中的return•在分支语句中可以使用return语句返回一种数据,如boolean型、或int型等,但return只能用在方法中,表示该方法返回一个值,当然方法可以没有返回值,即返回值为空(void)。•代码分支语句中的return示例程序。•代码分支语句中的return示例程序•1privateintreturnInt(intxx,intyy){•2if(xxyy)•3returnxx;•4else•5returnyy;•6}3.4循环语句•循环语句顾名思义是循环执行的语句,在满足一定条件的基础上,循环执行循环体中的语句,它是一种反复执行一段程序的流程结构,循环语句包括:while循环语句,do-while循环语句,for循环语句。3.4.1while循环语句•while循环语句的语句格式是:•while(表达式1){•执行语句•}•当表达式的值为真时,执行{}内的语句;当表达式的值为假时,则不执行{}内的语句,跳出while循环语句。•代码while循环语句示例程序。这个例子依次输入数组中的数值,并打印出来。While条件表达式的作用就是保证在数组的有效长度内,一旦超过数组的长度,while循环终止,程序退出while循环。3.4.2do-while循环语句•do-while循环语句的语句格式为:•do•执行代码;•while(布尔表达式)•执行该循环语句时,首先执行do之后的代码段,再判断while后的布尔表达式,如果布尔表达式为真,则继续执行do后的代码段,如果布尔表达式的值为假,则不再执行do后的代码段,程序跳出do-while循环。细心的读者可能会发现,do-while语句至少执行一次do后的代码段,while语句如果其布尔表达式为假,则while后的代码就不可能执行,这是do-while语句与while语句的重要区别。3.4.3for循环语句•for循环语句是Java提供的非常重要的循环语句。其语句格式是:•for(初始表达式;布尔表达式;增量表达式)•{•执行代码•}•循环变量的初始值由初始表达式赋予,也可以没有初始表达式。布尔表达式是判断是否继续执行“执行代码”的依据,如果布尔表达式为真则继续运行“执行代码”,如果为假则跳出for循环。增量表达式在“执行代码”运行后计算。一般增量表达式与for循环的初始值相关。for循环语句的程序流程如图所示。3.5跳转语句•跳转就是指不按语句的正常顺序执行,而是突然改变语句的运行顺序。本节就学习Java中常见的两个跳转语句。一个是break跳转语句,该语句的作用是直接跳出循环语句或判断分支语句;一个是continue跳转语句,该语句的作用是程序从循环体的开始处执行,不必考虑循环体中已经执行了多少轮循环。3.5.1break跳转语句•使用跳转语句,可以更直接的控制程序的流程,break跳转语句就是其中之一,其作用是直接跳出循环语句或分支语句如switch语句。在switch分支语句中,已经使用过break语句,一旦执行该跳转语句,程序就退出switch语句。在代码3-7中,做相应地修改,在第10行代码后,添加跳转语句break,其作用是在获得第一个大于60的数据时输出该值并跳出for循环。这样就实现了获得数组中第一个大于60的数据,当然也获得了该数据在数组中的位置。在for循环外增加一行输出System.out.println(“结束for循环”)。•5if(IntArray[i]60){•6System.out.println(IntArray[i]);•7break;•8}•9…………•10System.out.println(“结束for循环”);3.5.2continue跳转语句•continue跳转语句正好与break跳转语句相反,当执行continue语句时,程序从循环体的开始处执行,而不考虑循环体中已经执行了多少轮循环,在for循环语句中,执行到continue语句时,不再执行循环体中其他的代码,而是直接跳转到增量表达式,再开始下一轮的for循环。在while和do-while语句中,运行到continue语句时则跳转到相应的条件表达式,再开始下一轮的循环。•代码是continue跳转语句在for循环语句中的示例程序。•代码continue跳转语句示例程序•1publicclassContinueTest{•2publicstaticvoidmain(String[]args){•3inti=1;•4for(;i5;i++){•5System.out.println(“i=”i);•6System.out.println(“第”+i+”轮循环开始”);•7if(i1)•8continue;•9System.out.println(“第”+i+”轮循环结束”);•10}•11}•12}3.6本章习题•(1)学完本章后,读者需要回答:•1.Java条件语句的分类?•2.分支语句、循环语句和跳转语句的使用方法?•3.阅读程序判断整数m、n的最后值和含义。•Intm=0,n=0;•for(inti=0;i100;i++){•if(i%3==0){•m++•}•if(i%7==0){•n++•}•}•4.编写程序:•计算1~100的整数的累加和,并显示每个整数和当前累加和的对应关系。•5.计算30的阶乘。•(2)注意事项。•1.在Java程序流程控制中,最好少使用或不使用跳转语句,这样往往容易破坏Java程序良好的面向对象特性。•2.在使用嵌套语句时,如果超过3层嵌套要重新考虑该功能的设计,一般嵌套语句不能超过3层。

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功