导航和labeled语句(c)

到标签的 goto 语句发送控件。 给定标签只能位于同一函数,也可以在同一函数中的语句前面。

语法

  • 语句:
    标记语句

    跳转语句

  • 跳转语句:
    导航 标识符 ;

  • 标记语句:
    标识符 : 语句

语句标签仅对 goto 语句;在其他上下文中,一个 labeled 语句执行不考虑该标签。

跳转语句 必须仅位于同一函数,也可以在同一函数中的语句前面。 设置遵循 goto 的 标识符 名称都有自己的命名空间,因此名称不影响其他标识符。 标签不能重新声明。 请参见 命名空间 有关更多信息。

好的编程样式使用 中断继续和 return 语句优先于 goto 尽可能。 因为 中断 语句从循环的一个级别只退出, goto 可能需要为退出循环从一个深度嵌套的循环内。

此示例演示 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 );
}

在此示例中,为点的一个 goto 语句发送控件标记为 stop ,当 i 等于 5。

请参见

概念

语句(c)