Sdílet prostřednictvím


Příkaz goto a příkazy s popiskem (C)

Příkaz goto předává řízení popisku.Daný popisek musí být umístěn do stejné funkce a může se vyskytovat pouze před jedním výrazem v dané funkci.

Syntax

  • statement:
    labeled-statement

    jump-statement

  • příkaz jump:
    goto identifier ;

  • labeled-statement:
    identifier : statement

Popisek příkazu má význam pouze pro příkaz goto. Ve všech ostatních kontextech je příkaz s popiskem spuštěn bez ohledu na popisek.

Příkaz jump-statement musí být umístěn do stejné funkce a může se vyskytovat pouze před jedním výrazem v dané funkci.Sada názvů identifier následovaná příkazem goto má svůj vlastní obor názvů, díky čemuž názvy nenarušují jiné identifikátory.Popisky nelze znovu deklarovat.Další informace naleznete v tématu Obory názvů.

Dobrým způsobem programování je používat příkazy break, continue a return namísto příkazu goto vždy, kdy je to možné.Jelikož příkaz break ukončí pouze jednu úroveň smyčky, může být příkaz goto nezbytný pro ukončení smyčky z hluboce zanořené smyčky.

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

// 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 příkaz goto předá řízení do bodu označeného popiskem stop při hodnotě proměnné i rovné 5.

Viz také

Koncepty

Příkazy (C)