掌中招聘网 » 掌中论坛 » C/C++ » goto 语句
首页 上一页 下一页 尾页 
 
 本页主题: goto 语句
 


明天

积分:20
发表主题:2




 发表于 2008-07-08 16:01 资料
楼主


学过 BASIC 或 FORTRAN 的人一定都用过 goto 语句,这个语句在 C 里面同样可以使用。不过,C 不提倡使用 goto 语句,因为 C 完全可以不用它,而滥用它往往会导致程序凌乱不堪、难以阅读和维护。当然,适当地使用 goto 语句也会使程序更加简洁。

goto 语句的作用是跳转到一条你指定的语句,然后从那条语句开始往下执行。goto 语句的用法很简单,首先在你想要跳往的语句前面加个标签和冒号:

to: printf("go to here\n");

注意,标签的命名需要符合标识符命名规则。

然后,当你想跳转到该条语句时,使用“goto 标签名;”即可:

goto to;

通常,能避免 goto 都应该尽量避免。但是,如果是在陷入了很深层次的循环里想要跳出最外层的循环,用 goto 直接跳出却比用 break 一个循环一个循环地跳出要好得多。例如:

while ( condition1 )
{
// ... ...
while ( condition2 )
{
// ... ...
while ( condition3 )
{
// ... ...
while ( condition4 )
{
// ... ...
goto out_of_loop;
}
}
}
}
out_of_loop:
// 其它语句

还有,在深层循环里,如果想跳过余下的语句,直接返回第一层循环,使用 goto 语句也可以大大减少代码量:

while ( condition1 )
{
// ... ...
while ( condition2 )
{
// ... ...
while ( condition3 )
{
// ... ...
while ( condition4 )
{
// ... ...
goto end_of_outmost_loop;
}
}
}
end_of_outmost_loop: ;
}

总之,goto 可以用,但不能滥用,使用前请务必三思。其实,你可以将 break 和 continue 理解成弱化了的 goto 语句。而我们上面所举的两个例子可以理解成强化了的 break 和 continue。





首页 上一页 下一页 尾页