2013-04-20 50 views
1

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

我想知道,为什么goto被宣布为关键字,如果它没有用处而且没有在任何地方使用? 有没有人在java程序中使用goto?还有没有其他关键字就像在java编程中声明的一样,但没有用到隐喻。

我们在哪里使用goto进行日常编程?

+0

这里的小[2]会导致“即使当前没有使用关键字const和goto,如果这些C++关键字错误地出现在程序中,这可能允许Java编译器生成更好的错误消息。 – chris 2013-04-20 05:28:26

+0

已发布于SO。 – 2013-04-20 05:36:09

回答

4

这是一个关于goto语句

用法位摘要:

它们被用来跳出语句块的语言,JMP指令则在汇编级这项工作。

转到是严格禁止的,因为他们使程序难以追踪 代码中的过度跳转使其变慢。想象一下里面有一个循环。它一点都不好。

Java保留这个关键字可能是因为它也涉及jvm(这是一些C/C++)代码中的一些本机代码,可能是为了避免含糊不清。

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

Here's an example of break as a GOTO in java

0

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。

0

go to语句在java.b中可用但它被标记为“未使用”。

您可以使用,而不是转到

BREAK

1

,它被宣布,而不是用来被保留在它需要它的未来情况的原因素标记break语句。目前它没有任何用途。

constanother保留字,它什么都不做。由于它们是保留的,所以不能在程序中使用它们(作为变量)。

1

要找出真正的原因,gotoconst最初保留,你需要问Java语言的设计者。当这种语言被称为橡树时,就会做出决定。

有如何过几个合理解释:

  • 他们认为他们可能需要扩展语言的方式,可能会使用这些关键字,和他们保持自己的选择打开。

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

但显而易见的事实是,现在这些保留字将不会被使用。


UPDATE

显然Java的在一个点上有goto语句。

“的事情之一,我所做的是有一些问题页转到Java的在一个点有一个goto。我做的是什么人,用goto语句做这个研究?而基于半的这份研究报告百万行代码,我刚摆脱它。“

"James Gosling on Java, May 2001"

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