在java中goto的目的

Purpose of goto in java

本问题已经有最佳答案,请猛点这里访问。

我知道EDCOX1 0是Java中的关键字。另外,从wiki,我可以摘录到,"它没有被使用,也没有任何功能"。

我想知道,如果goto没有用处,也没有在任何地方使用,为什么它被声明为关键字?在Java程序中是否有人使用EDCOX1 0?在Java编程中是否有类似GOTO声明的其他关键字,但隐喻没有用。

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


下面是关于goto语句的一点总结

用途:

它们用于跳出语言中的语句块,JMP指令在汇编级别执行此操作。

由于goto使程序难以跟踪,因此严格禁止使用goto。代码的过度跳转会使代码变慢。想象一个循环在里面。一点也不好。

Java保留这个关键字可能是因为它也涉及一些本地代码在JVM(这是一点C/C++)代码,可能是为了避免歧义。

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

下面是Java中GOTO的一个例子


为了找出EDOCX1 2和EDOCX1 1的初始原因,您需要询问Java语言设计者。当这门语言被称为"橡树"时,就会做出决定。

怎么会有一些合理的解释:

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

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

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

更新

显然爪哇确实曾经有过一段时间。

"One of the things I did was there were some issues with goto. Java had a goto at one point. I did this study of what people were doing with goto? And based on that study of a half million lines of code, I just got rid of it."

从"詹姆斯·高斯林在爪哇,2001年5月"。

因此,真正的解释是EDCOX1 2的保留是因为它在Java的早期版本中被使用,并且他们决定摆脱它。


声明而不使用的原因是为了将来需要时保留它。它目前没有任何作用。

const是另一个不起作用的保留字。因为它们是保留的,所以不能在程序中使用它们(作为变量)。


go to语句在Java中可用,但它被标记为"未使用"。

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

断裂


Java关键字列表指定GOTO关键字,但标记为"未使用"。查看Java关键字列表,了解Java编程中类似GOTO声明的其他关键字,但隐喻性地没有使用。

1
2
3
4
5
6
7
8
9
startAgain:
for(int i =0; i <10 ;i++){
    for(int i =0; i <10 ;i++){
        if(someCondition)
        break startAgain;

    }

}

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