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

package breakcontinue; import java.awt.Label; import javax.security.auth.kerberos.KerberosKey; pu...
  • wwww4
  • wwww4
  • 2015-06-01 21:06
  • 445

Java中带标签的break的用法

在研究Android下断点上传文件时,遇到了一个java有意思的写法,break + 标签 积累下。 package com.zhcv.example.socket.util; import ja...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

带标签的break和continue(java基础)

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

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

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

浅谈一下Java基础中的break和continue关键字(带标签和不带标签问题)

谈一谈Java基础中的break和continue关键字(带标签和不带标签问题)           今天上课的时候,Java老师又一次谈起了,Java中带标签的break和continue关键字。在...

Java 中break和continue结合标签标示符中断循环示例详解(附源码)

臭名昭著的goto        编程语言中一开始就有goto关键词了。事实上,goto起源于汇编语言的程序控制:“若条件A成立,则跳到这里;否则跳到那里”。如果阅读由编译器最终生成的汇编代码,就会...

Java SE之break和continue标签

文是学习网络上的文章时的总结,感谢大家无私的分享。 Java没有提供goto功能,但是保留了goto关键字。在java中可以使用break标签和continue标签功能实现简版的goto功能。 下...

Java的goto:标签+break/continue

gotogoto起源于汇编,用于A成立则跳转到B。 goto是Java中的保留字,但Java并未使用。Java使用标签+break/continue,实现goto操作。 代码public clas...

java里面的标签运用 continue label, break label

众所周知,goto是java的一个保留字,但java却并使用它,所以说java里面没有goto。然而,java其实也提供了另外一个方法来解决类似于跳转的操作。 用continue label, bre...

swift之控制转移语句,continue,break,fallthrough,return,带标签的语句

swift之控制转移语句,continue,break,fallthrough,return,带标签的语句
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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