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

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


当前回答

不,没有使用goto,但是您可以定义标签并留下一个到标签的循环。您可以使用break或continue后跟标签。所以你可以跳出多个循环层。看看教程。

其他回答

正如前面所指出的,Java中没有goto,但是关键字是保留的,以防有一天Sun想要将goto添加到Java中。他们希望能够在不破坏太多代码的情况下添加它,所以他们保留了关键字。注意,在Java 5中,他们添加了enum关键字,也没有破坏那么多代码。

虽然Java没有goto,但它有一些结构对应于goto的一些用法,即能够中断和继续命名循环。最后也可以被认为是一种扭曲的后向。

Java关键字列表指定了goto关键字,但它被标记为“未使用”。

它在最初的JVM中(参见@VitaliiFedorenko的回答),但后来被删除了。它可能被保留为一个保留关键字,以防它被添加到Java的后期版本中。

如果goto不在列表中,并且它后来被添加到语言中,使用单词goto作为标识符(变量名、方法名等)的现有代码将被破坏。但是因为goto是一个关键字,这样的代码在当前甚至不会编译,并且它仍然有可能在不破坏现有代码的情况下让它实际做一些事情。

因为尽管Java语言不使用它,但JVM字节码使用它。

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

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

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

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

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

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