`

Java中的break Label 和continue Label

阅读更多
Java中的break Label 和continue Label
1:break
  break语句提供了一种方便的跳出循环的方法,一般只退出一重循环。
  boolean test=true;
  int i=0;
  while(test){
   i++;
   if(i>=10) break;
  }
  执行这段程序时,尽管while条件表达式始终为真,全循环只运行10次。

 2:标号label
  标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环语句中碰到break时,不管其它控制变量,都会终止。但是,当你嵌套在几层循环中想退出循环时又怎么办呢?break只退出一重循环,但你可以用标号label标出你想退出哪一个语句。规定标号label必需放在循环之前(意味着循环必需紧跟着标号)

例子一:
char a;
   System.out.println("请输入一个字母");
   outer: //System.out.println("请输入一个字母");// 如果在这个地方打印语句的话,编译时就会在下面蓝色语句的地方报The label outer is missing,因为这样会造成标号没有放在循环之前
   for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
     a = (char) System.in.read();
     if (a == 'b')
     [color=blue]break outer;[/color]    
     if (a == 'c')
    [color=blue] continue outer;[/color]    }
   }
  
在这个例子中,循环从键盘接受100个输入字符,输入“b”字符时,break outer语句会结束两重循环,注重continue outer语句,它告诉计算机退出现在的循环并继续执行outer循环。

在Java中可以使用 break/continue 语句来控制多重嵌套循环的跳转。
例子二:
   label1: for (int i = 0; i < 10; i++) {
    System.out.println("i = " + i);
    for (int x = 0; x < 10; x++) {
     System.out.println("x = " + x);
    continue label1;
    }
   }

在这个例子中,我们使用continue label1中断当前循环,继续上层循环的执行。而如果使用break label1的话,则跳出所有label1后面的嵌套循环。类似的功能我们在C#中只能用goto进行,Java虽然保留了goto关键词,却不允许使用(goto为保留字)。需要注意的是Label和下面的循环语句间不能有其他代码。

从设计角度来说是用Label、goto都不是好主意。


分享到:
评论
1 楼 flyingcatjj 2012-12-13  

相关推荐

    JAD解决MISSING_BLOCK_LABEL心得

    当有标签块,嵌套循环中有break/continue,有goto语句的时候,会提示信息“Couldn't fully decompile method ”;当有try-catch-finally语句的时候会提示信息“Couldn't resolve all exception handlers in method ”...

    关于break和continue以及label的区别和作用(详解)

    下面小编就为大家带来一篇关于break和continue以及label的区别和作用(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java2游戏编程.pdf

    2.4.3 用break、continue和return提前退出循环 2.5 处理运行时异常 2.5.1 使用try和catch块 2.5.2 使用throws子句 2.5.3 关于流程控制语句的记忆要点 2.6 总结 2.7 练习 第3章 带有类的语言:Java面向对象程序设计 ...

    java编程基础,应用与实例

    4.3.4 多重for循环语句中的break与continue 52 4.4 while语句 55 4.5 do-while语句 57 4.6 巩固练习 57 第5章 类与对象 59 5.1 类的定义与对象的创建 59 5.2 引用赋值 61 5.3 成员方法 62 5.3.1 ...

    javascript实现label标签跳出循环操作

    首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务。 我们先来看看单独使用break的情况 for...

    ASE12.5命令指南中文

    break . case. checkpoint close coalesce commit. compute 子句. connect to.disconnect . continue. create database . create default create existing table . create function (SQLJ) create index. create...

    delphi编译错误.txt

    BREAK or CONTINUE outside of loop BREAK或CONTINUE超出循环 Cannot add or subtract relocatable symbols 不能增加或减少可重置的符号 Cannot assign to a read-only property 不能指定只读属性 Cannot BREAK, ...

    〖程序设计基础〗练习题3及答案

    4.java语言中的逻辑变量可以和整型变量相互强制转换。 5.面向对象的软件开发方法用类把数据和基于数据的操作封装在一起,并且类之间可以存在继承关系。 6.方法可以没有返回值,或有一个返回值,也可以有多个返回值。...

    C语言程序设计标准教程

     break语句,goto语句,continue语句,return语句 4.复合语句 把多个语句用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如 { x=y+z; a=b+c; printf(“%d%d...

    C# for CSDN 乱七八糟的看不懂

    C#关键字 关键字 abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach ...

    leetcode下载-leetcode:leetcode练习

    break/continue 的使用 二维数组的初始化 String 相关(不可变、安全、常量池...) StringBuilder/StringBuffer 正则表达式 ArrayList 和 LinkedList 对比:数组实现,按下标查找效率高,删除添加效率低; 链表实现,...

    eureQa QaSCRIBE-crx插件

    它是一种“无编程”脚本工具,支持多种命令和构造:•识别应用程序中的用户界面元素并与之交互•有条件(分支)逻辑(If,ElseIF,Else,EndIf)•循环和跳转流控制(同时,For,ForEach,Continue,Break,GoTo,...

    精通SQL 结构化查询语言详解

    15.2.3 WHILE、BREAK和CONTINUE语句 15.2.4 DECLARE语句 15.2.5 GOTO label语句 15.2.6 RETURN语句  15.2.7 WAITFOR语句  15.2.8 PRINT语句  15.2.9 注释 15.3 SQL Server中的存储过程和函数  15.3.1 ...

    贪吃蛇.jar

    import java.io.IOException; import java.util.Hashtable; import java.util.Vector; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; public class DCSnake extends i { ...

    《javaScrip开发技术大全》源代码

    • sample22.htm 在嵌套的循环语句中使用break语句 • sample23.htm label语句与break语句相结合 • sample24.htm continue语句 • sample25.htm label语句与continue语句相结合 •...

    微软JavaScript手册

    break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 ...

    javascript文档

    break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 ...

    精通SQL--结构化查询语言详解

    15.2.3 while、break和continue语句 304 15.2.4 declare语句 306 15.2.5 goto label语句 306 15.2.6 return语句 307 15.2.7 waitfor语句 307 15.2.8 print语句 308 15.2.9 注释 308 15.3 sql server中的存储...

    JScript 语言参考

    break 语句 终止当前循环,或者如果与一个label 语句关联,则终止相关联的语句。 call 方法 应用对象的一个方法,用当前对象代替另一对象。 callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 ...

    Visual C# 2005程序设计自学手册 随书源码第一部分(共三部)

    3.3.2 使用continue语句的实现程序跳转 60 3.3.3 使用goto语句实现程序跳转 60 3.3.4 使用return语句实现程序跳转 62 3.4 异常处理语句 63 3.4.1 throw语句 63 3.4.2 try-catch语句 64 3.4.3 try-catch...

Global site tag (gtag.js) - Google Analytics