Java中带标签的 break 和 continue

转载 2007年09月15日 01:15:00

转自:http://blog.csdn.net/jamesfancy/archive/2006/09/09/1198210.aspx

  Java 中有 goto 关键字,但这个关键字没有任何作用,换句话说,我们不能使用 goto 来进行跳转到某行。实际上,结构化程序设计完全不需要 goto 语句即可完成各种流程,而 goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转。

  Java 中同样可以定义标签,使用标识符加冒号 (:) 的形式,如“mylabel:”。不过既然 Java 中的 goto 没有实质性的作用,标签的设计当然就不是为了 goto。

  Java 中的标签是为循环设计的,是为了在多重循环中方便的使用 break 和 coutinue 而设计的。正是由于这个原因,Java 的标签只能定义在三种循环 (for() {}, do{} while(), while() {}) 的开始位置,否则编译器会报告说找不到标签。稍后的例子即可更直观的说明。

  在循环前面加上标签,就好像给循环起了个名字。而后在循环中使用 break 或者 continue 语句的时候,就可以带上这个标签做为参数,指明跳出 (break) 或者继续 (continue) 哪一个循环,如“break mylabel;”、“continue mylabel;”。 

/** *//**
     * 演示查找过程,使用带标签的 break 和 continue 语句。
     
*/

    
public void search() ...{
        
//loop1:
        
// 若在此处定义标签,由于不是其后紧跟循环语句,所以会被勿略掉。
        
// 被忽略掉的标签,如果在 break 或者 continue 语句中用到,编译时不能通过。
        
// 如果没有在 break 或者 continue 中用到则编译可以成功。
        System.out.println("--- Begin Searching ---");
        loop1: 
for (int i = 0; i < row; i++) ...{
            
for (int j = 0; j < col; j++) ...{
                
if (data[i][j] > lookfor) ...{
                    System.out.println(
"--- JUMP ---");
                    
continue loop1; // 想想此处用 break,结果会有什么变化
                }

                
if (data[i][j] == lookfor) ...{
                    System.out.println(
"FOUND: data[" + i + "][" + j + "] = "
                            
+ lookfor);
                    
break loop1; // 想想此处用 return,结果会有什么变化
                }

                System.out
                        .println(
"data[" + i + "][" + j + "] = " + data[i][j]);
            }

            System.out.println(
"--- LOOP2END ---");
        }

        System.out.println(
"--- End Searching ---");
    }

Java中的break,continue关于标签的用法

Java的控制循环结构中是没有关键字goto的,这种做法有它的好处,它提高了程序流程控制的可读性,但是也有不好的地方,它降低了程序流程控制的灵活性,所以说,“上帝是公平的”。所以,Java为了弥补这方...
  • mdx20072419
  • mdx20072419
  • 2014年12月09日 14:56
  • 3897

Java中的break和continue 区别

break可以离开当前switch、for、while、do while的程序块,并前进至程序块后下一条语句,在switch中主要用来中断下一个case的比较。在for、while与do while中...
  • u014612521
  • u014612521
  • 2015年01月14日 23:29
  • 4841

java关键字之break与continue的区别(简单明了的小例子)

一.作用与区别 break的作用是跳出当前循环块(for、while、do while)或程序块(switch)。在循环块中的作用是跳出当前正在循环的循环体。在程序块中的作用是中断和下一个case条...
  • tomcat_2014
  • tomcat_2014
  • 2015年10月19日 19:48
  • 1274

带标签的break和continue语句(Java、C++)

之所以要拿这块来讲,是因为这块确实被自己那么深深地遗忘了,以至于突然看到文档中说到这么一段时,有了不小的震惊!或许,因为结构化编程模式强调最好不要用goto这样的破坏程序结构的、让程序可读性大大变差这...
  • xiaoyao3857
  • xiaoyao3857
  • 2012年08月23日 20:55
  • 3482

Java中关键字continue、break和return的区别

Java中关键字continue、break和return的区别 continue:跳出本次循环继续下一次循环 break:   跳出循环,继续执行循环外的函数体 return:   跳出整个函数体 ...
  • shineflowers
  • shineflowers
  • 2014年12月05日 14:32
  • 25923

java中continue和break的区别

一、作用和区别 a、关键字break的作用是跳出当前正在执行的循环体 b、关键字continue的作用是结束当前正在执行的循环体的后面的语句并跳回循环体开头继续执行下一次循环 二、一个简单的...
  • qq_30261075
  • qq_30261075
  • 2017年03月26日 10:55
  • 241

Java中带标签的 break 和 continue

日志 > 软件编程 转载到我空间 复制本文网址 显示签名档 大字体 选用该信纸上一篇|下一篇|返回日志列表设置置顶 | 编辑 | 删除Java中带标签的 break 和 continue发表于:20...
  • yuzhu2008
  • yuzhu2008
  • 2008年05月14日 23:39
  • 1494

golang跳转语句goto,break,continue的使用及区别

gotogoto语句可以无条件地转移到过程中指定的行。 通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。 在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混...
  • mofiu
  • mofiu
  • 2017年08月17日 11:06
  • 531

break、continue关键字配合标签使用,实现跳转功能

知识点:continue和break配合标签实现跳转功能       尽管java中goto是一个保留字,但在语言中并未使用它,Java没有goto。然后java也可以完成一些类似于跳转的操作,...
  • yybj
  • yybj
  • 2014年10月14日 02:04
  • 2281

再探java基础——break和continue的用法

再探java基础——break和continue的用法 break break可用于循环和switch...case...语句中。 用于switch...case中: 执行完满足case条件的...
  • luoweifu
  • luoweifu
  • 2013年08月31日 19:09
  • 34506
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中带标签的 break 和 continue
举报原因:
原因补充:

(最多只允许输入30个字)