我知道goto
是java中的一个关键字。另外,从wiki,我可以摘录,“它没有使用,没有功能”。java中goto的用途
我想知道,为什么goto
被宣布为关键字,如果它没有用处而且没有在任何地方使用? 有没有人在java程序中使用goto
?还有没有其他关键字就像在java编程中声明的一样,但没有用到隐喻。
我们在哪里使用goto进行日常编程?
我知道goto
是java中的一个关键字。另外,从wiki,我可以摘录,“它没有使用,没有功能”。java中goto的用途
我想知道,为什么goto
被宣布为关键字,如果它没有用处而且没有在任何地方使用? 有没有人在java程序中使用goto
?还有没有其他关键字就像在java编程中声明的一样,但没有用到隐喻。
我们在哪里使用goto进行日常编程?
这是一个关于goto语句
用法位摘要:
它们被用来跳出语句块的语言,JMP指令则在汇编级这项工作。
转到是严格禁止的,因为他们使程序难以追踪 代码中的过度跳转使其变慢。想象一下里面有一个循环。它一点都不好。
Java保留这个关键字可能是因为它也涉及jvm(这是一些C/C++)代码中的一些本机代码,可能是为了避免含糊不清。
Java提供break作为goto的实现,但其用法也是有限的,不应该经常使用。
Java keyword list指定goto关键字,但它被标记为“未使用”。 查看Java关键字列表以了解其他关键字,这些关键字就像在java编程中声明的一样,但隐喻性地没有用处。
startAgain:
for(int i =0; i <10 ;i++){
for(int i =0; i <10 ;i++){
if(someCondition)
break startAgain;
}
}
上面的代码在某种程度上类似于goto。
,它被宣布,而不是用来被保留在它需要它的未来情况的原因素标记break语句。目前它没有任何用途。
const
是another保留字,它什么都不做。由于它们是保留的,所以不能在程序中使用它们(作为变量)。
要找出真正的原因,goto
和const
最初保留,你需要问Java语言的设计者。当这种语言被称为橡树时,就会做出决定。
有如何过几个合理解释:
他们认为他们可能需要扩展语言的方式,可能会使用这些关键字,和他们保持自己的选择打开。
他们希望避免C/C++程序员阅读Java代码时的认知失调,其中一些被误导的人决定使用“goto”或“const”作为变量或方法名称。
但显而易见的事实是,现在这些保留字将不会被使用。
UPDATE
显然Java的做在一个点上有goto语句。
“的事情之一,我所做的是有一些问题页转到Java的在一个点有一个goto。我做的是什么人,用goto语句做这个研究?而基于半的这份研究报告百万行代码,我刚摆脱它。“
从"James Gosling on Java, May 2001"。
所以真正的解释是,goto
被保留,因为它在Java的早期版本中使用,他们决定摆脱它。
这里的小[2]会导致“即使当前没有使用关键字const和goto,如果这些C++关键字错误地出现在程序中,这可能允许Java编译器生成更好的错误消息。 – chris 2013-04-20 05:28:26
已发布于SO。 – 2013-04-20 05:36:09