A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Expresi贸n goto

11/13
Recursos

Aportes 14

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

En el libro de Algoritmos a fondo con implementaciones en C y Java, escrito por el Ing. Pablo Augusto Sznajdleder.
Dice, la estructura 鈥渋r a鈥 o, en ingl茅s, 鈥済o to鈥 o 鈥済oto鈥. 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 **鈥済oto鈥漘** (o estructura 鈥渋r a鈥). Esta estructura se qued贸 en desuso porque trae grandes problemas de mantenibilidad.

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. Elgoto` 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.

la instruccion goto te lleva a una linea especifica en el programa, pero usarlo se puede caer en malas practicas

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 : El iniciador del llamado "C贸digo Spaguetti"
aquel c贸digo que necesitas a un genio para poder entenderlo.

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 (馃槂.

En el minuto 5:20 me parecio haber escuchado que este era el super poder de goku.

por que me menosprecia a mi goto XD

goto
Es la comando que te lleva a una linea especifica en el programa, pero usarlo se puede caer en malas practicas

#include <stdio.h>

int main(int argc, char const *argv[])
{

    printf("Contando del 1 al 10:\n");

    int i = 1;

    contar:
    printf("%d\n", i);
    i++;
    if (i <= 10)
        goto contar;
    
    printf("Terminamos\n");

    return 0;
}

El go to est谩 presente en muchos c贸digos spaguetti.

que diferencia hay entre try catch y goto?
los dos son para errores?

Recuerdo en el lenguaje BASIC se usaba bastante con las condiciones