Purpose of goto in java
我知道EDCOX1 0是Java中的关键字。另外,从wiki,我可以摘录到,"它没有被使用,也没有任何功能"。
我想知道,如果
我们在日常编程中使用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的早期版本中被使用,并且他们决定摆脱它。
声明而不使用的原因是为了将来需要时保留它。它目前没有任何作用。
可以使用带标签的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。