Stiven Andres Arevalo
yazuline
Juan Pablo Perez
Oscar Jaramillo
Jesús Ignacio García Fernández
PATRICIO ALBERTO MORALES FARIÑA
Juan Sebastian Ortiz Santacoloma
Jean Nuñez
PATRICIO ALBERTO MORALES FARIÑA
Jose Montoya
Miguel Sanchez
Jose Luis Saldarriaga Bravo
marco antonio
Youssef Abarca
Sahara de los Ángeles Guerrero Ruiz
Daniel Arturo Dominguez Lopez
Reinaldo Mendoza
Reinaldo Mendoza
Patrick Jeremy Rodriguez Sandoval
Juan Francisco
Gabriel Obregón
Ricardo Soler
Iván Roberto Rivas Celeita
Camilo Bellon
Fernando Sánchez Mejía
Fernando Sánchez Mejía
Fernando Sánchez Mejía
En el libro de Algoritmos a fondo con implementaciones en C y Java, escrito por el Ing. Pablo Augusto Sznajdleder. Dice, la estructura “ir a” o, en inglés, “go to” o “goto”. Esta estructura quedó descartada luego de que el teorema de la programación estructurada demostrara que con una adecuada combinación de las_ tres estructuras de control _(secuenciales, selectivas e iterativas. Las que estudiamos en este curso) es posible resolver cualquier algoritmo sin tener que recurrir al “goto” (o estructura “ir a”). Esta estructura se quedó en desuso porque trae grandes problemas de mantenibilidad.
Total! Gracias por el aporte
Gracias por el aporte teórico compañero.
Esta instrucción goto seguramente sea algo heredado de otros lenguajes más antiguos. El lenguaje **C ** que se basa en un paradigma de programación estructurada.
Es más avanzado a la programación secuencial porque tiene funciones que rompe la continuidad, por la existencia de return, los bucles con el continue, y break. El goto` es algo que puede saltar a otro lugar del código que puede ser curioso... no lo he probado pero que tal y si pongo la etiqueta dentro de un bucle y este no tiene inicializadas las condiciones... En fin no quiero romperme la cabeza, solo le pido al compilador que ante semejante aberración chille, llore, berrée o te saque del programa de forma abrupta, a ser posible sin guardar el programa.
En Basic, muchos programadores abusaron del goto.
En el minuto 5:20 me parecio haber escuchado que este era el super poder de goku.
la instruccion goto te lleva a una linea especifica en el programa, pero usarlo se puede caer en malas practicas
Goto : El iniciador del llamado "Código Spaguetti" aquel código que necesitas a un genio para poder entenderlo.
Vengo de Java, JavaScript y Node. Nunca había visto goto... Me deja pensando que cuando usamos middlewares estamos haciendo algo como lo que el profe explica en esta clase, salta el flujo para hacer algo,.. Entonces, ¿sería mala práctica el uso de middleware? ¿Si, no y porqué?
No es mala practica usar middlewares porque son diferentes a un goto (los middlewares forman parte de la logica), un goto lo que hace es saltar a una parte especifica y eso puede romper el flujo del programa.
Son cosas muy diferentes, como ya explicó Miguel. El goto no lo verás nunca en otros lenguajes porque es una herramienta de bajo nivel. Cuando programas en ensamblador el goto se usa para moverse por los diferentes puntos de un programa de una forma similar a cuando llamas a una función, y en ese contexto es útil, pero en alto nivel eso puede romper el flujo del programa por lo que se puede considerar hasta peligroso. Es de esas herramientas que hay que saber que existen pero nunca vas a usar.
por que me menosprecia a mi goto XD
Haciendo este ejercicio me da una idea del uso que le puedo dar.
#include <stdio.h> int main(int argc, const char* argv[]) { int nAdvertencias = 0; restart: if(nAdvertencias == 3) goto errorHandler; int count=1000; for (size_t i = 0; i < count; i++) { for (size_t j = 0; j < count; j++) { for (size_t k = 0; k < count; k++) { if (k>100) { printf("\nHas sobrepasado el numero de iteraciones permitidas\n"); nAdvertencias++; printf("Advertencia: %d\n", nAdvertencias); goto restart; } } } printf("%d\n", i); } return 0; errorHandler: //todo el codigo para componer tu desastre printf("\nHas sobrepasado 3 veces el numero de iteraciones permitidas"); return 0; }
goto Es la comando que te lleva a una linea especifica en el programa, pero usarlo se puede caer en malas practicas
que diferencia hay entre try catch y goto? los dos son para errores?
try catch se utiliza para excepciones, ya llegaremos a eso, en este punto no necesita saber que es, creo que seria contraproducente
el goto como menciona Celis nunca lo he utilizado tampoco, se supone que la lógica es la que debe guiar la ejecución y no una expresión arbitraria
La instrucción de salto goto se puede usar en un programa, para transferir incondicionalmente el control del mismo a la primera instrucción después de una etiqueta, o dicho de otra forma, al ejecutar una instrucción goto, el control del programa se transfiere (salta) a la primera instrucción después de una etiqueta. Una etiqueta se define mediante su nombre (identificador) seguido del carácter dos puntos (:).
El teorema de la programacion esstructura tambien conocido como terorema de Böhm-Jacopini.
📝 GOTO en C
🔹 ¿Qué es GOTO?
➡️ Instrucción que salta a otra parte del código. ⚠️ Problemas principales:
🗨️ Dennis Ritchie: “altamente abusable”.
🔹 Alternativas recomendadas
Usa estructuras claras:
✨ Beneficios: más comprensión, mejor mantenimiento.
🔹 ¿Cuándo usar GOTO?
✔️ Casos muy específicos:
🔹 Ejemplo de uso
if (/* error crítico */) {
goto error_handler;
}
// flujo normal
error_handler:
printf("Manejador de errores activado.\n");
🔹 Casos prácticos
🤖 Robótica
⌨️ Controladores de hardware
goto label;
Único caso de uso recomendable para goto:
goto es igual al 'codigo spaeguetti'
La instruccion GOTO se usa ampliamente en la programacion de codigo G para CNC.
Para reutilizar segemento de codigo no sería mejor usar funciones.
Instrucción altamente abusable.
Si intrucción goto, se encuentra en desuso porque causa problemas de operavilidad y es una mala practica de los estudiantes.