该语句将 goto 控件传输到标签。 给定标签必须驻留在同一函数中,并且只能在同一函数中的一个语句之前显示。
语法
statement:
labeled-statement
jump-statement
jump-statement:
goto
identifier
;
labeled-statement:
identifier
:
statement
语句标签仅对 goto 语句有意义;在任何其他上下文中,不考虑标签执行标记的语句。
A jump-statement 必须位于同一函数中,并且只能出现在同一函数中的一个语句之前。 后面的identifier名称集goto具有自己的名称空间,因此名称不会干扰其他标识符。 无法重新声明标签。 有关详细信息,请参阅 名称空格。
最好尽可能使用 ,break并continue优先return使用goto语句。
break由于该语句仅从一个循环级别退出,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语句将控件传输到在等于 5 时stop标记i的点。