Istruzione Goto.

di il
9 risposte

Istruzione Goto.

Mi incuriosisce tanto questa istruzione Goto, in sostanza interrompe dei cicli.....
Mi risulta che Goto sia un alternativa al break, in quanto riesce a terminare solo l''iterazione più interna in un codice...

Mi risulta dal testo che è una istruzione che molti la evitano e ci sono delle alternative....., ma voi che programmate tanto, questa Goto, la trovate utile e la usate spesso?

9 Risposte

  • Re: Istruzione Goto.

    Sembra che a volte venga usata per riavviare i programmi.
  • Re: Istruzione Goto.

    Addirittura!
    Il testo mi parla di interruzione quando è impossibile intervenire con il break perchè termina solo l'operazione più interna!
  • Re: Istruzione Goto.

    Perchè hai letto solo un paragrafo su uno dei tanti usi del goto, non hai studiato il funzionamento del goto
  • Re: Istruzione Goto.

    oregon ha scritto:


    Perchè hai letto solo un paragrafo su uno dei tanti usi del goto, non hai studiato il funzionamento del goto

    Sicuramente nei paragrafi successivi incontrerò questa funzione...., nell'eventualità la studierò da altre fonti!
    Meglio fare passo per volta e non fare passi più lunghi......
  • Re: Istruzione Goto.

    Non è una funzione, è un'istruzione.

    Non è come dici tu. Non sono passi più o meno lunghi, sono passi falsi. Quando si usa una nuova istruzione, la sua sintassi e uso vanno studiati PRIMA. Dovresti leggere la documentazione

    https://docs.microsoft.com/it-it/cpp/c-language/goto-and-labeled-statements-c?view=msvc-170

    e vale per tutto quello che vai facendo.
  • Re: Istruzione Goto.

    Grazie Oregon!
    Quindi in questo codice:
     
     // goto.c
    #include <stdio.h>
    
    int main()
    {
        int i, j;
    
        for ( i = 0; i < 10; i++ )
        {
            printf_s( "Outer loop executing. i = %d\n", i );
            for ( j = 0; j < 3; j++ )
            {
                printf_s( " Inner loop executing. j = %d\n", j );
                if ( i == 5 )
                    goto stop;
            }
        }
    
        /* This message does not print: */
        printf_s( "Loop exited. i = %d\n", i );
    
        stop: printf_s( "Jumped to stop. i = %d\n", i );
    }
     


    Il goto, ha la funzione di bloccare solo quel ciclo for all'interno di quelle graffe, giusto?
  • Re: Istruzione Goto.

    In questo caso serve ad uscire dal ciclo.

    Per uscire da cicli annidati (molto annidati) può essere utile il goto, ma io comunque preferisco non usarlo.
  • Re: Istruzione Goto.

    Infatti, sto usando anche un altro testo alternativo e lo stesso mi dice che goto e' poco utilizzato!
  • Re: Istruzione Goto.

    Il "goto" e' usato per il paradigma di programmazione ""Spaghetti Oriented Programming"".

    https://it.wikipedia.org/wiki/Spaghetti_cod

    Poi' e' una questione di ""gusto personale"" se seguire uno dei prossimi ""paradigmi"":
    • Spaghetti alla carbonara
    • Spaghetti aglio e olio
    • Spaghetti alla carrettiera
    • Spaghetti all'amatriciana
    • Spaghetti alla puttanesca
    • Spaghetti alla siracusana
    • Spaghetti alle vongole
    • Spaghetti allo scoglio
    • Spaghetti all'arrabbiata
    • Spaghetti cacio e pepe
    • Spaghetti al pomodoro


    A parte le batture, esiste il seguente (vero) teorema: Teorema di Böhm-Jacopini

    https://it.wikipedia.org/wiki/Programmazione_strutturata
Devi accedere o registrarti per scrivere nel forum
9 risposte