我知道这goto
是java中的一个关键字。另外,从wiki中,我可以摘录“它没有被使用并且没有任何功能”。
goto
我想知道,如果它没有用并且没有在任何地方使用,为什么要声明为关键字?有人用过goto
java程序吗?是否有任何其他关键字类似于 java 编程中声明的 goto 但隐喻没有用处。
我们在日常编程中在哪里使用 goto,或者很少在什么时候使用?
这是关于 goto 语句的一些总结
用法:
它们用于跳出语言中的语句块,JMP 指令在汇编级别完成这项工作。
Goto 是严格禁止的,因为它们使程序难以跟踪 代码中的过多跳转会使其变慢。想象一个循环进入其中。它一点都不好。
Java保留这个关键字可能是因为它还涉及jvm(即有点C / C ++)代码中的一些本机代码,可能是为了避免歧义。
Java 提供了 break 作为 goto 的实现,但它的使用也是有限的,不应该经常使用。
声明它而不使用它的原因是保留它以防将来需要它。它目前没有任何用途。
const
是另一个不做任何事情的保留字。由于它们是保留的,因此您不能在程序中使用它们(作为变量)。
要找出最初goto
保留和的真正原因,您需要询问 Java 语言设计人员。当语言被称为 Oak 时,就会做出决定。const
有几个看似合理的解释:
他们认为他们可能需要以可能使用这些关键字的方式扩展语言,并且他们保持选择开放。
他们希望避免 C/C++ 程序员在阅读 Java 代码时出现认知失调,其中一些被误导的人决定使用“goto”或“const”作为变量或方法名称。
但显而易见的事实是,这些保留字现在被使用的可能性为零。
更新
显然,Java在某一时刻 确实有过 goto。
“我做的其中一件事是 goto 存在一些问题。Java 曾经有一个 goto。我研究了人们使用 goto 做什么?基于对 50 万行代码的研究,我只是摆脱它。”
来自“James Gosling on Java,2001 年 5 月”。
所以真正的解释是goto
保留它,因为它在Java 的早期版本中使用过,他们决定去掉它。
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。