Diferencia entre revisiones de «GOTO»

1 byte eliminado ,  hace 4 años
m (Pequeñas correcciones WP:CEM.)
Tal creencia está tan arraigada que el ''GOTO'' es muy criticado por los dedicados a la enseñanza de la programación, que lo suelen desaconsejar. Por el otro lado, algunos que si bien admiten el uso de un ''GOTO'' como una práctica desaconsejable<ref>* Peter Bishop: ''Programación avanzada en BASIC'', Ediciones Anaya Multimedia año-1990 ISBN 978-84-7614-013-0 (página 86): {{Cita|Una vez escrita la parte del programa correspondiente a un bucle es muy tentador aprovechar algunas o todas las instrucciones contenidas en esa parte para otros fines, lo que obliga a utilizar bifurcaciones para acceder al bucle desde otros puntos del programa (lo que se haría con GOTOs).
Esa tentación debe resistirse a toda costa. Ramificar un programa hacia el interior de un bucle es una costumbre completamente desaconsejable.}}</ref> reconocen que éste es la mejor opción para algunas pocas tareas puntuales<ref>* Peter Bishop: ''Programación avanzada en BASIC'', Ediciones Anaya Multimedia año-1990 ISBN 978-84-7614-013-0 (página 86): {{Cita|Otra cosa es crear una bifurcación para salir de un bucle, situación que se plantea cuando la terminación del mismo depende de más de una sola condición. Una de ellas es la llegada del contador a su valor final, y la otra supone alguna verificación realizada dentro del propio bucle. ...no es recomendable saltar directamente al exterior de un bucle. Lo mejor es pasar el contador a su valor final y saltar hasta el fin del bucle.}}</ref> en algunos lenguajes de programación ([[manejo de excepciones]] por ejemplo). Además, por lo general se programan [[macro]]s o equivalentes para evitar la utilización de GOTO.
 
 
Una crítica famosa a la instrucción en cuestión es una carta redactada por [[Edsger Dijkstra]] llamada ''"Go To Statement Considered Harmful"'' (''Instrucción Go To Considerada Dañina''). En ella Dijkstra argumenta que el uso irrestricto de ''GOTO'' debería ser prohibido en lenguajes de alto nivel ya que dificultan el análisis y la verificación de la [[corrección de los programas]] (especialmente aquellos que contienen ciclos). Por el otro lado, [[Donald Knuth]] en su libro ''"Structured Programming with goto Statements"'' (''Programación estructurada con instrucciones Goto''), tiene en cuenta ciertas situaciones en las que se utilizaría ''GOTO''. Por lo general, se trata de situaciones en las que una estructura de programación en particular no está disponible y ''GOTO'' puede simularla eficientemente.