1

我知道这goto是java中的一个关键字。另外,从wiki中,我可以摘录“它没有被使用并且没有任何功能”。

goto我想知道,如果它没有用并且没有在任何地方使用,为什么要声明为关键字?有人用过gotojava程序吗?是否有任何其他关键字类似于 java 编程中声明的 goto 但隐喻没有用处。

我们在日常编程中在哪里使用 goto,或者很少在什么时候使用?

4

5 回答 5

4

这是关于 goto 语句的一些总结

用法:

它们用于跳出语言中的语句块,JMP 指令在汇编级别完成这项工作。

Goto 是严格禁止的,因为它们使程序难以跟踪 代码中的过多跳转会使其变慢。想象一个循环进入其中。它一点都不好。

Java保留这个关键字可能是因为它还涉及jvm(即有点C / C ++)代码中的一些本机代码,可能是为了避免歧义。

Java 提供了 break 作为 goto 的实现,但它的使用也是有限的,不应该经常使用。

这是一个在java中作为GOTO中断的例子

于 2013-04-20T05:38:51.710 回答
1

声明它而不使用它的原因是保留它以防将来需要它。它目前没有任何用途。

const另一个不做任何事情的保留字。由于它们是保留的,因此您不能在程序中使用它们(作为变量)。

于 2013-04-20T05:29:18.793 回答
1

要找出最初goto保留和的真正原因,您需要询问 Java 语言设计人员。当语言被称为 Oak 时,就会做出决定。const

有几个看似合理的解释:

  • 他们认为他们可能需要以可能使用这些关键字的方式扩展语言,并且他们保持选择开放。

  • 他们希望避免 C/C++ 程序员在阅读 Java 代码时出现认知失调,其中一些被误导的人决定使用“goto”或“const”作为变量或方法名称。

但显而易见的事实是,这些保留字现在被使用的可能性为零。


更新

显然,Java在某一时刻 确实有过 goto。

“我做的其中一件事是 goto 存在一些问题。Java 曾经有一个 goto。我研究了人们使用 goto 做什么?基于对 50 万行代码的研究,我只是摆脱它。”

来自“James Gosling on Java,2001 年 5 月”

所以真正的解释是goto保留它,因为它Java 的早期版本中使用过,他们决定去掉它。

于 2013-04-20T06:16:15.743 回答
0

Java 关键字列表指定了goto 关键字,但它被标记为“未使用”。请参阅 Java 关键字列表以了解在 Java 编程中声明的类似于 goto 的其他关键字是什么,但在比喻上没有用处。

startAgain:
for(int i =0; i <10 ;i++){
    for(int i =0; i <10 ;i++){
        if(someCondition)
        break startAgain;

    }

}

上面的代码在某种程度上类似于 goto。

于 2013-04-20T05:28:16.013 回答
0

go to声明在java中可用。但它被标记为“未使用”。

您可以使用带标签的 break 语句而不是 goto

休息

于 2013-04-20T05:28:18.977 回答