网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月03日漏签0天
运维吧 关注:24,040贴子:251,171
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回运维吧
>0< 加载中...

浅谈C语言goto语句的用法

  • 只看楼主
  • 收藏

  • 回复
  • XYD漫漫
  • 下士
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天一起来分析C语言,goto语句的用法。

goto语句的用法
goto语句,为无条件转移语句。
其一般格式如下:
goto 语句标号;
其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
执行goto语句后,程序将跳转到该标号处并执行其后的语句。
另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。
通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。
goto语句在多层嵌套中跳出时,常用goto语句。
案例:用goto语句和if语句构成循环语句,求 1+2+3+......+100的和。
#include <stdio.h>
int main(void)
{
int i;
int sum=0;
i=1;
loop: if(i<=100)
{
sum=sum+i;
i++;
goto loop;
}
printf("%d\n",sum);
return 0;
}

使用goto语句,注意事项
在结构化程序设计中一般不主张使用goto语句,以免造成程序流程的混乱。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套中,跳出时,用goto语句则比较合理。
goto语句只是不提倡,当然不是禁用,那么在什么情况下可以使用goto语句呢?
以下情况下,可以考虑用goto语句:
1、从多重循环中直接跳出 ;
2、出错时清除资源;
3、可增加程序的清晰度的情况。
不加限制地使用goto语句,会破坏清晰的程序结构,会使程序的可读性变差,甚至成为不可维护的"面条代码"。经常带来错误或隐患,比如它可能跳过了某些对象的构造,变量的初始化,重要的计算等语句。
使用goto语句的原则(仅供参考):
1、用goto语句只能goto到同一函数内,而不能从一个函数中goto到另外一个函数中。
2、用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的处应是函数内另外一段小功能的开始处。
3、不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。
4、应该避免向两个方向跳转,这样最容易导致"面条代码"。
阅读过linux内核代码的读者应该注意到,linux内核代码里面,有不少地方用了goto语句,但你会发现,它的使用还是非常谨慎的,基本都遵循上面提到的几个原则。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回运维吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示