为什么C语言中的go to 语句老师说要小心使用?注意的地方是什么?
5个回答
展开全部
goto语句称为无条件转移语句,通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。而且,goto语句一般可以用其他语句来代替。
当然,goto语句也有其优势,例如可以用goto语句一次性跳出多重循环,而不需要使用多个break语句一步一步地跳出,从而使代码更为简洁。
在C语言中使用goto语句的注意事项如下:
使用goto语句只能转移到到同一函数内,而不能从一个函数里转移到另外一个函数里。
使用goto语句在同一函数内进行转移时,转移的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。
不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。
应该避免向两个方向跳转。这样最容易导致“面条代码”。
所以说,goto语句要小心使用。
展开全部
goto语句可跳出多层循环,但是会破坏程序执行流程和结构化程序设计,所以在一个函数内部用一般不会出现什么问题,但是在跨函数用的时候就会出现一些奇怪的现象,比如说编译的时候 出现错误或者警告 或者出现乱码,所以最好尽量少用goto语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用GOTO有时候会让程序的可读性不好,对于教育者来说,尤其是改卷老师来说,这简直就是噩梦,所以学校极力不推荐使用GOTO语句,书上也只是匆匆一笔带过。但实际中,GOTO还是可以一用的,根据实际需求使用吧。
追问
能举个例子吗?go to在什么情况下能用?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
goto语句要避免使用,它最大缺点是使得程序可读性变差,许多教科书上都不介绍这种语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,不是不用goto,而是通常情况下有更好的替代方法、使用过多goto会使程序变成垃圾代码,难以阅读且难以修改。但有时有用,像下面这个例子。
while(……)
{
switch(……)
{
……
goto done;
……
}
}
done:……
为了从while循环中跳出来,break不能达到要求(只跳出switch),而goto无限制。
while(……)
{
switch(……)
{
……
goto done;
……
}
}
done:……
为了从while循环中跳出来,break不能达到要求(只跳出switch),而goto无限制。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询