Es importante comprender que la goto
construcción es remanente desde los días que los programadores programaron en código máquina y lenguaje ensamblador. Debido a que esos lenguajes son tan básicos (como en cada instrucción hace solo una cosa), el flujo de control del programa se realiza completamente con goto
declaraciones (pero en lenguaje ensamblador, se denominan salto o ramificación instrucciones de ).
Ahora, aunque el lenguaje C es de nivel bastante bajo, puede considerarse como un lenguaje ensamblador de muy alto nivel: cada declaración y función en C se puede dividir fácilmente en instrucciones en lenguaje ensamblador. Aunque el C no es el lenguaje principal para programar computadoras hoy en día, todavía se usa mucho en aplicaciones de bajo nivel, como los sistemas integrados. Debido a que la función de C refleja tan estrechamente la función del lenguaje ensamblador, tiene sentidogoto
esté incluida en C.
Está claro que Java es una evolución de C / C ++. Java comparte muchas características de C, pero abstrae muchos más detalles y, por lo tanto, simplemente se escribe de manera diferente. Java es un lenguaje de muy alto nivel, por lo que simplemente no es necesario tener características de bajo nivel, como goto
cuando hay más construcciones de alto nivel como funciones, para, para cada uno, y mientras los bucles hacen el flujo de control del programa. Imagina si estuvieras en una función e hicieras ungoto
una etiqueta en otra función. ¿Qué pasaría cuando volviera la otra función? Esta idea es absurda.
Esto no responde necesariamente por qué Java incluye la goto
declaración, pero no lo deja compilar, pero es importante saber por qué goto
se usó en primer lugar, en aplicaciones de nivel inferior, y por qué simplemente no tiene sentido ser utilizado en Java