导航和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。