我对此感到困惑。我们大多数人都听说过Java中没有goto语句。

但我发现它是Java中的关键字之一。它可以在哪里使用?如果它不能使用,那么为什么它作为关键字包含在Java中?


当前回答

不,goto在Java中没有使用,尽管它是一个保留字。对于const也是如此。这两个都在c++中使用,这可能是它们被保留的原因;这样做的目的可能是为了避免让迁移到Java的c++程序员感到困惑,也可能是为了在以后的Java版本中保留使用它们的选项。

其他回答

如何在Java中使用"continue"标签的例子是:

public class Label {
    public static void main(String[] args) {
        int temp = 0;
        out: // label
        for (int i = 0; i < 3; ++i) {
            System.out.println("I am here");
            for (int j = 0; j < 20; ++j) {
                if(temp==0) {
                    System.out.println("j: " + j);
                    if (j == 1) {
                        temp = j;
                        continue out; // goto label "out"
                    }
                }
            }
        }
        System.out.println("temp = " + temp);
    }
}

结果:

I am here // i=0
j: 0
j: 1
I am here // i=1
I am here // i=2
temp = 1

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html

关键字const和goto是 矜持,尽管事实并非如此 目前使用。”

请参阅下面的链接,它显示了所有java保留字,并告诉您添加了哪些版本。

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html

Goto是保留的,即使目前没有使用,但永远不要说永远:)

因此,如果语言设计者觉得有必要的话,它们是可以被使用的。

此外,如果来自具有这些关键字的语言的程序员(例如。C, c++)错误地使用它们,那么Java编译器可以给出有用的错误消息。

或者只是为了阻止程序员使用goto:)

James Gosling创建了支持goto语句的原始JVM,但后来他删除了这个不必要的特性。没有必要使用goto的主要原因是,通常可以用可读性更好的语句(如break/continue)或将一段代码提取到方法中来代替它。

来源:James Gosling,问答环节