Sdílet prostřednictvím


goto a popisky příkazů (C)

Příkaz goto přenese řízení na popisek. Daný popisek se musí nacházet ve stejné funkci a může se zobrazit před pouze jedním příkazem ve stejné funkci.

Syntaxe

statement:
labeled-statement
jump-statement

jump-statement:
goto identifier ;

labeled-statement:
identifier : statement

Popisek příkazu je smysluplný pouze pro goto příkaz. V jakémkoli jiném kontextu se příkaz s popiskem spustí bez ohledu na popisek.

Musí jump-statement být umístěn ve stejné funkci a může se zobrazit před pouze jedním příkazem ve stejné funkci. Sada identifier názvů, které následují, goto má vlastní prostor pro názvy, takže názvy nekorušují s jinými identifikátory. Popisky nelze předefinovat. Další informace najdete v tématu Mezery názvů.

Je to dobrý programovací styl používat break, continuea return příkaz v předvolbách, goto kdykoli je to možné. Vzhledem k tomu, že příkaz break se ukončí pouze z jedné úrovně smyčky, goto může být nezbytné pro ukončení smyčky z hluboko vnořené smyčky.

Tento příklad ukazuje goto příkaz:

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

V tomto příkladu goto příkaz přenese řízení na bod označený stop , když i se rovná 5.

Viz také

Výkazy