




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
break、continue和return在编程中的作用1、return 语句的作用(1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行(2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致(3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。2、break语句的作用(1) 只能在循环体内和switch语句体内使用break语句。(2) 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。(3) 当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。(4) 在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环3、continue语句作用(1) continue语句continue语句的一般形式为:contonue;(2) 其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。(3) 注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分 ,然后决定循环是否继续进行。(4) 在for 循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同class Testpublic static void main(String args) testBreak();testContinue();testReturn();static void testBreak()for(int i=0;i10;i+)if(i%2=0)System.out.println(i=+i);elseSystem.out.println(执行了break语句,跳出当前循环!);break;static void testContinue()for(int i=0;i10;i+)if(i%2=0)System.out.println(没有执行continue语句输出i=+i);elseSystem.out.println(执行了Continue语句,跳出当前循环!);continue;static void testReturn()for(int i=0;i10;i+)System.out.println(执行了return语句,直接跳出了当前的testReturn方法!);return;运行结果:i=0执行了break语句,跳出当前循环!没有执行continue语句输出i=0执行了Continue语句,跳出当前循环!没有执行continue语句输出i=2执行了Continue语句,跳出当前循环!没有执行continue语句输出i=4执行了Continue语句,跳出当前循环!没有执行continue语句输出i=6执行了Continue语句,跳出当前循环!没有执行continue语句输出i=8执行了Continue语句,跳出当前循环!执行了return语句,直接跳出了当前的testReturn方法!详细分析三个语句的用法: 使用break 语句在Java 中,break语句有3种作用。 第一,你已经看到,在switch语句中,它被用来终止一个语句序列。 第二,它能被用来退出一个循环。 第三,它能作为一种“先进”goto 语句来使用。 下面对最后 2种用法进行解释。 使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。下面是一个简单例子: / Using break to exit a loop. class BreakLoop public static void main(String args) for(int i=0; i100; i+) if(i = 10) break; / terminate loop if i is 10 System.out.println(i: + i); System.out.println(Loop complete.); 该程序产生如下输出: i: 0 i: 1 i: 2 i: 3 i: 4 i: 5 i: 6 i: 7 i: 8 i: 9 Loop complete. 正如你看到那样,尽管for 循环被设计为从 0执行到99,但是当i等于10时,break语句终止程序。break语句能用于任何 Java 循环中,包括人们有意设置无限循环。例如,将上一个程序用while 循环改写如下。该程序输出和刚才看到输出一样。 / Using break to exit a while loop. class BreakLoop2 public static void main(String args) int i = 0; while(i 100) if(i = 10) break; / terminate loop if i is 10 System.out.println(i: + i); i+; System.out.println(Loop complete.); 在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。 例如: / Using break with nested loops. class BreakLoop3 public static void main(String args) for(int i=0; i3; i+) System.out.print(Pass + i + : ); for(int j=0; j100; j+) if(j = 10) break; / terminate loop if j is 10 System.out.print(j + ); System.out.println(); System.out.println(Loops complete.); 该程序产生如下输出: Pass 0: 0 1 2 3 4 5 6 7 8 9 Pass 1: 0 1 2 3 4 5 6 7 8 9 Pass 2: 0 1 2 3 4 5 6 7 8 9 Loops complete. 从中可以看出,在内部循环中break语句仅仅终止该循环,外部循环不受影响。 break ,在这里要记住两点。首先,一个循环中可以有一个以上break 语句。但要小心,太多break 语句会破坏你代码结构。其次,switch语句中break仅仅影响该switch 语句,而不会影响其中任何循环。 注意:break 不是被设计来提供一种正常循环终止方法。循环条件语句是专门用来终止循环。只有在某类特殊情况下,才用break 语句来取消一个循环。 把break 当作goto 一种形式来用 break语句除在switch语句和循环中使用之外,它还能作为goto 语句一种“文明”形式来使用。Java 中没有 goto 语句,因为goto 语句提供一种改变程序运行流程非结构化方式。这通常使程序难以理解和难于维护。它也阻止某些编译器优化。但是,有些地方goto 语句对于构造流程控制是有用而且是合法。 例如,从嵌套很深循环中退出时, goto 语句就很有帮助。因此,Java 定义break 语句一种扩展形式来处理这种情况。通过使用这种形式break,你可以终止一个或者几个代码块。这些代码块不必是一个循环或一个switch语句一部分,它们可以是任何块。而且,由于这种形式break 语句带有标签,你可以明确指定执行从何处重新开始。你将看到,break带给你是goto 益处,并舍弃goto 语句带来麻烦。 标签break 语句通用格式如下所示: break label; 这里,标签label 是标识代码块标签。当这种形式break执行时,控制被传递出指定代码块。被加标签代码块必须包围break 语句,但是它不需要是直接包围break块。这意味着你可以使用一个加标签break 语句退出一系列嵌套块。但是你不能使用break 语句将控制传递到不包含break 语句代码块。 要指定一个代码块,在其开头加一个标签即可。标签(label )可以是任何合法有效Java 标识符后跟一个冒号。一旦你给一个块加上标签后,你就可以使用这个标签作为break 语句对象。这样做会使执行在加标签块结尾重新开始。 例如,下面程序示例 3 个嵌套块,每一个都有它自己标签。 break语句使执行向前跳,调过定义为标签second 代码块结尾,跳过2个println ( ) 语句。 / Using break as a civilized form of goto. class Break public static void main(String args) boolean t = true; first: second: third: System.out.println(Before the break.);if(t) break second; / break out of second blockSystem.out.println(This wont execute); System.out.println(This wont execute);System.out.println(This is after second block.); 运行该程序,产生如下输出: Before the break. This is after second block. 标签break 语句一个最普遍用法是退出循环嵌套。例如,下面程序中,外层循环只执行一次: / Using break to exit from nested loops class BreakLoop4 public static void main(String args) outer: for(int i=0; i3; i+) System.out.print(Pass + i + : ); for(int j=0; j100; j+) if(j = 10) break outer; / exit both loops System.out.print(j + ); System.out.println(This will not print); System.out.println(Loops complete.); 该程序产生如下输出: Pass 0: 0 1 2 3 4 5 6 7 8 9 Loops complete. 你可以看到,当内部循环退到外部循环时,两个循环都被终止。记住如果一个标签不在包围break块中定义,你就不能break 到该标签。 例如,下面程序就是非法,且不会被编译: / This program contains an error. class BreakErr public static void main(String args) one: for(int i=0; i3; i+) System.out.print(Pass + i + : ); for(int j=0; j100; j+) if(j = 10) break one; / WRONG System.out.print(j + ); 因为标签为one循环没有包围break 语句,所以不能将控制传递到该块。 5.3.2 使用continue 语句有时强迫一个循环提早反复是有用。也就是,你可能想要继续运行循环,但是要忽略这次重复剩余循环体语句。实际上,goto 只不过是跳过循环体,到达循环尾部。continue 语句是break语句补充。在while 和do while 循环中,continue 语句使控制直接转移给控制循环条件表达式,然后继续循环过程。在for 循环中,循环反复表达式被求值,然后执行条件表达式,循环继续执行。对于这3种循环,任何中间代码将被旁路。 下例使用continue 语句,使每行打印2个数字: / Demonstrate continue. class Continue public static void main(String args) for(int i=0; i10; i+) System.out.print(i + ); if (i%2 = 0) continue; System.out.println(); 该程序使用%(模)运算符来检验变量i是否为偶数,如果是,循环继续执行而不输出一个新行。 该程序结果如下: 0 1 2 3 4 5 6 7 8 9 对于break语句,continue 可以指定一个标签来说明继续哪个包围循环。下面例子运用continue 语句来打印0到9三角形乘法表: / Using continue with a label. class ContinueLabel public static void main(String args) outer: for (int i=0; i10; i+) for(int j=0; j i) System.out.println(); continue outer; System.out.print( + (i * j); System.out.println(); 在本例中continue 语句终止计数j循环而继续计数i下一次循环反复。该程序输出如下: 0 0 1 0 2 4 0 3 6 9 0 4 8 12 16 0 5 10 15 20 25 0 6 12 18 24 30 36 0 7 14 21 28 35 42 49 0 8 16 24 32 40 48 56 64 0 9 18 27 36 45 54 63 72 81 很好利用continue 语句情况很少,一个原因是Java 提供一系列丰富循环语句,可以适用于绝大多数应用程序。但是,对于那些需要提早反复特殊情形,continue 语句提供一个结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级专业认证考试模拟题集实战演练与答案解析
- 猪场建设资金预算方案
- 人防工程施工组织设计方案
- 无人机教学设备更新与技术升级方案
- 新媒体时代新闻真实性变革与公信力维护报告
- 学校消防安全管理人职责社会监督
- 血涂片分类计数数据质量控制流程
- 提升城市对外开放合作水平的策略及实施路径
- 员工辞职报告模板(5篇材料)
- 氢能基础设施2025年市场前景与技术突破分析报告
- 环卫人员安全知识培训课件
- 4.《花之歌》教学设计-2024-2025学年统编版语文六年级上册
- 新学期,新征程+课件-2025-2026学年高二上学期开学第一课主题班会
- 板式换热器设计课件
- 小学六年级英语阅读理解45篇
- 燃气管道随桥敷设施工方案
- 人力资源部安全责任清单、履职清单
- 项目管理考核办法实施细则
- 污水处理厂主要设施操作规程
- 梯笼安全验收表0001
- 全称量词命题与存在量词命题的否定 教案
评论
0/150
提交评论