Java 标签的使用

8

在查看一些关于Java的好文章时,我发现以下代码可以完美编译。

public int myMethod(){
    http://www.google.com
    return 1;
}

描述说明http:这个词将被视为标签,//www.google.com将被视为注释。

我不明白Java标签在循环外有什么用处? 在什么情况下应该使用循环外的Java标签?


如果可以避免,就不应该在循环之外使用它。无论如何,这不是Java的思维方式,因为它会引入复杂性。就像在函数中有多个返回一样。 - iajrz
2个回答

16

使用Java标签的一个好处如下:

block:
{
    // some code

    if(condition) break block;

    // rest of code that won't be executed if condition is true
}

嵌套循环的另一种用法:

outterLoop: for(int i = 0; i < 10; i++)
{
    while(condition)
    {
        // some code

        if(someConditon) break outterLoop; // break the for-loop
        if(anotherConditon) break; // break the while-loop

        // another code
    }

    // more code
}

或者:

outterLoop: for(int i = 0; i < 10; i++)
{
    while(condition)
    {
        // some code

        if(someConditon) continue outterLoop; // go to the next iteration of the for-loop
        if(anotherConditon) continue; // go to the next iteration of the while-loop

        // another code
    }

    // more code
}

你的第二个示例中使用 continue outterLoop 是没有意义的,因为你可以在那里使用一个简单的 break。这只有在更深层次的循环中才有意义。或者我完全错了吗? - WarrenFaith
@WarrenFaith 没错。已更新答案。 - Eng.Fouad
算了,没事了,我漏掉了什么 :D - WarrenFaith
如果在while循环之后仍然在for循环内部有任何代码,那么前面的示例将一点也不无意义。 - Math
@Math 你是正确的。已更新答案 ;) - Eng.Fouad

-1

只因編譯成功並不代表它有用......

在Java中,標籤通常被忽視了(誰使用帶有標籤的 breakcontinue ...?)。但是,僅僅因為標籤沒有被使用並不代表它是非法的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接