首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java搜索:"block“

Java搜索:"block“
EN

Stack Overflow用户
提问于 2012-04-26 04:29:40
回答 3查看 239关注 0票数 2

有没有人在Java中看过下面的代码?

代码语言:javascript
复制
public void methodName(){ 
   search:
     for(Type[] t : Type[] to){
       do something...
   }
}

有人能告诉我在这种情况下"search:“的用法文档吗?搜索“搜索:”并不是很有成效。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-26 04:31:58

这是个标签。来自Java语言规范的§14.7

语句可能有标签前缀...

(省略了无聊的语法,标记起来很痛苦)

与C和C++不同,Java编程语言没有goto语句;标识符语句标签与出现在标记语句中任何位置的break (§14.15)或continue (§14.16)语句一起使用。

您经常看到标签的一个地方是嵌套循环,在那里您可能想要提早打破这两个循环:

代码语言:javascript
复制
void foo() {
    int i, j;

    outerLoop:                     // <== label
    for (i = 0; i < 100; ++i) {
        innerLoop:                 // <== another label
        for (j = 0; j < 100; ++j) {
            if (/*...someCondition...*/) {
                break outerLoop;   // <== use the label
            }
        }
    }
}

通常,内部循环中的break只会中断内部循环,而不会中断外部循环。但因为它是使用标签的定向break,所以它打破了外部循环。

票数 12
EN

Stack Overflow用户

发布于 2012-04-26 04:32:45

这是一个带标签的循环的示例。

它允许您对目标循环执行breakcontinue操作,而不是当前循环。

代码语言:javascript
复制
Outer:
    for(int intOuter=0; intOuter < intArray.length ; intOuter++)
    {
      Inner:
      for(int intInner=0; intInner < intArray[intOuter].length; intInner++)
      {
        if(intArray[intOuter][intInner] == 30)
        {
          blnFound = true;
          break Outer; // this line breaks the outer loop instead of the inner loop.
        }  

      }
    }

示例来自:http://www.java-examples.com/java-break-statement-label-example

票数 1
EN

Stack Overflow用户

发布于 2012-04-26 04:32:06

它是在JLS:http://docs.oracle.com/javase/specs/jls/se5.0/html/statements.html#78994中定义的Java标签

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10323257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档