¿Existe una declaración goto en Java?

Resuelto Venkat asked hace 14 años • 23 respuestas

Estoy confundido acerca de esto. A la mayoría de nosotros nos han dicho que no existe ninguna declaración goto en Java.

Pero descubrí que es una de las palabras clave en Java. ¿Donde puede ser usado? Si no se puede utilizar, ¿por qué se incluyó en Java como palabra clave?

Venkat avatar Mar 30 '10 19:03 Venkat
Aceptado

James Gosling creó la JVM original con soporte de gotodeclaraciones, pero luego eliminó esta característica por considerarla innecesaria. La razón principal por la gotoque es innecesario es que generalmente se puede reemplazar con declaraciones más legibles (como break/continue) o extrayendo un fragmento de código en un método.

Fuente: James Gosling, sesión de preguntas y respuestas

Vitalii Fedorenko avatar Dec 28 '2010 17:12 Vitalii Fedorenko

La lista de palabras clave de Java especifica la gotopalabra clave, pero está marcada como "no utilizada".

Estaba en la JVM original (ver respuesta de @VitaliiFedorenko ), pero luego se eliminó. Probablemente se mantuvo como palabra clave reservada en caso de que se agregara a una versión posterior de Java.

Si gotono estuviera en la lista y se agregara al idioma más adelante, el código existente que usaba la palabra gotocomo identificador (nombre de variable, nombre de método, etc.) se rompería. Pero debido a que gotoes una palabra clave, dicho código ni siquiera se compilará en el presente, y sigue siendo posible hacer que haga algo más adelante, sin romper el código existente.

Thomas avatar Mar 30 '2010 12:03 Thomas

La palabra clave existe, pero no está implementada.

La única buena razón para usar goto que se me ocurre es esta:

for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        goto outsideloops; // to break out of both loops
    }
}
outsideloops:

En Java puedes hacer esto así:

loops:
for (int i = 0; i < MAX_I; i++) {
    for (int j = 0; j < MAX_J; j++) {
        // do stuff
        break loops;
    }
}
jonnystoten avatar Mar 30 '2010 12:03 jonnystoten

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html

"Las palabras clave const y goto están reservadas, aunque no se utilicen actualmente. "

Isaac E avatar Mar 30 '2010 12:03 Isaac E