Udostępnij za pośrednictwem


goto i sprawozdań z etykietą (C)

goto Instrukcji przekazuje sterowanie do etykiety.Danej etykiecie muszą znajdować się w tej samej funkcji i mogą być wyświetlane przed tylko jedną instrukcję w tej samej funkcji.

Składnia

  • Instrukcja:
    oświadczenie o nazwie

    instrukcja JUMP

  • instrukcja JUMP:
    goto identifier ;

  • oświadczenie o nazwie:
    Identyfikator : instrukcji

Etykieta instrukcji ma znaczenie jedynie goto instrukcji; w dowolnym kontekście instrukcji etykietą jest wykonywany bez względu na etykiecie.

A Instrukcja jump musi znajdować się w tej samej funkcji i mogą być wyświetlane przed tylko jedną instrukcję w tej samej funkcji.Zestaw z identyfikatora następujące nazwy goto ma własną przestrzeń nazw, więc nazwy nie zakłócają innych identyfikatorów.Etykiety nie mogą być redeclared.Zobacz Obszarów nazw Aby uzyskać więcej informacji.

Jest ona dobra, programowania, styl, aby użyć break, nadal, i return instrukcji uprzywilejowanych do goto w każdym przypadku, gdy jest to możliwe.Ponieważ break instrukcji kończy się tylko z jednego poziomu pętli, goto mogą być niezbędne do zamykania pętli z wewnątrz pętli głęboko zagnieżdżonych.

Ten przykład demonstruje goto instrukcji:

// 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 );
}

W tym przykładzie goto instrukcji przekazuje sterowanie do punktu o nazwie stop po i jest równe 5.

Zobacz też

Koncepcje

Instrukcje (C)