programacion-goto

La instrucción GO-TO

En la entrada anterior vimos que el control de flujo es una parte fundamental de cualquier lenguaje de programación, que nos permite controlar la ejecución del programa y tomar decisiones.

Una de las primeras instrucciones que se utilizó para el control de flujo es el comando GO-TO. El comando GO-TO es una instrucción que permite saltar de una sección del código a otra, sin ejecutar el código intermedio.

Es decir, permite cambiar el flujo de ejecución del programa. Se utiliza para implementar estructuras de control de flujo, como bucles y condicionales, y también para saltar a una sección específica del código en función de alguna condición.

programacion-goto

GO-TO permitía saltar a otra instrucción

El uso del comando GO-TO es muy simple. Simplemente se utiliza la palabra reservada GO-TO, seguida de una etiqueta que identifica la sección del código a la que se quiere saltar. La etiqueta se identifica con un nombre y se coloca en la sección del código que se quiere saltar.


// código que se ejecutará
goto etiqueta;
// todo este código nos lo saltamos

etiqueta:
// código al que se saltará

En la actualidad, el comando GO-TO se considera una mala práctica. Tuvo su función en el pasado, pero generaba un código difícil de mantener y gestionar.

El problema es que, a medida que el código aumenta en longitud y complejidad, se va llenando de “saltos para aquí y para allá”. Al final acabas con un laberinto, en el que es muy fácil no saber por donde va a ir el programa.

programacion-goto-problem

La madre de todos los pollos

Como esto no era muy mantenible, unas personas muy inteligentes se pusieron a pensar ¿qué podemos hacer para que esto mejore? Así que lo primero que analizaron es ¿en que circunstancias tengo que hacer un GO-TO?

Con esto surgieron nuevas formas y pautas para estructurar nuestro código. De hecho esto pasó a llamarse “programación sin GO-TO”. Así nacen las estructuras de control que hoy conocemos, que principalmente son

  • Condicionales
  • Bucles

La mayoría de lenguajes de programación modernos como C++, C#, JavaScript o Python, implementan estas estructuras. Estas estructuras proporcionan una mayor claridad en el código, lo que facilita su comprensión y modificación.

Si bien muchos lenguajes aún suelen mantener algún tipo de instrucción GO-TO, en la actualidad su uso no es necesario y está fuertemente desaconsejado.