Java中是否有goto语句?

问题

我对此感到困惑。我们大多数人都被告知Java中没有任何goto语句。

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


#1 热门回答(212 赞)

防止人们被迅猛龙杀死。

图片描述


#2 热门回答(207 赞)

James Gosling在支持goto语句的情况下创建了原始JVM,但随后他将此功能删除为不必要的。主要原因goto是不必要的,通常它可以用更可读的语句(如break/continue)或通过将一段代码提取到方法中来替换。

来源:James Gosling, Q&A session


#3 热门回答(171 赞)

Java keyword list指定了goto关键字,但标记为"未使用"。

它在最初的JVM中(见answer by @VitaliiFedorenko),但随后被删除。它可能保留为保留关键字,以防它被添加到更高版本的Java中。

Ifgoto不在列表中,并且稍后会添加到该语言中,使用wordgoto作为标识符(变量名,方法名等)的现有代码将会中断。但是因为goto是一个关键字,这样的代码甚至不会在当前编译,并且仍然可以使它实际上稍后执行某些操作,而不会破坏现有代码。