goto怎么用,GOTO跳段指令怎么用

GOTO跳段指令怎么用,关于C语言的goto语句存在很多争议,很多书籍都建议“谨慎使用,或者根本不用”。这里先不做过多的讨论,存在即合理,既然是C语言中的一个知识点,我们还是有必要学会使用。先看一些g

GOTO跳段指令怎么用,关于C语言的goto语句存在很多争议,很多书籍都建议“谨慎使用,或者根本不用”。这里先不做过多的讨论,存在即合理,既然是C语言中的一个知识点,我们还是有必要学会使用。先看一些goto如何用:

一、goto的基本语法

1、C语言中goto又叫无条件转移语句,可以让程序直接跳转到任意标记的位置。用法就是“goto label……label:”。下面用一个示例来演示具体的用法,这里先新建一个C语言的程序文件,演示使用的是Visual Studio软件作为开发工具。

goto语句有两部分:goto和标签名。标签的命名规则与变量的命名规则一样。如:

goto label;

要让这条语句正常工作,函数还必须包含另一条标为label的语句,该语句以标签名后紧跟一个冒号开始,如:

label:printf(&34;);

二、goto的例子

运行结果:

三、goto与break、continue的区别?

同样是跳转语句,goto语句与break、continue语句有什么区别呢?实际上,break和continue是goto的特殊形式。使用break与continue的好处是:其名称已经表明他们的用法。下面通过代码实例看一下break与continue的用法:

goto 是一种 C 语言中的跳转语句,可以用于将程序的执行转移到代码中的其他位置。使用 goto 语句时,需要先定义一个标签(label),然后在 goto 后面加上这个标签,就可以使程序跳转到标签所在的位置执行。下面是一个简单的。

1、break测试函数

使用上面的测试程序,建一个测试break语句的函数void TestBreak(void);,如:

运行结果:

从运行结果我们明显可以知道,break可以退出当前循环。在本例子中,第一个break语句退出当前的for循环,第二个break语句退出当前的while循环。可见,一个break可退出一层循环。所以,根据break与goto的特点知道,如果是跳出很多层循环,使用goto会方便些。

2、continue测试函数

同样的,建一个测试continue语句的函数void TestContinue(void);,如:

运行结果:

四、支持与反对goto的理由是什么?

1、不提倡使用goto

通常与条件语句配合使用。可用来实现条件转移,构成循环,跳出循环体等功能。在结构化程序设计中一般不主张使用goto语句,以免造成程序流程的混乱。goto对应(标签)既可以定义在for循环前面,也可以定义在for循环后面,当跳转到。

不提倡使用goto的占比应该比较多,不提倡的原因主要是:

很容易把逻辑弄乱且难以理解。

goto怎么用

2、使用goto的理由

这一部分人认为goto可以用在以下两种情况比较方便:

(1)跳出多层循环。

这个例子就类似于我们上面的goto测试程序。

goto怎么用

(2)异常处理。

一个函数的执行过程可能会产生很多种情况异常情况。下面有几种处理方式,以代码为例:

方法一:做出判断后,如果条件出错,直接return。

方法二:先设置一个变量,对变量赋值,只有一个return。

方法三:使用goto语句。

其中,方法三就是很多人都提倡的方式,统一用goto err跳转是最方便且效率最高的,从反汇编语句条数可以看出指令用的最少,消耗的寄存器也最少,效率无疑是最高的。并且,使用goto可以使程序变得更加可扩展。当程序需要在错误处理时释放资源时,统一到goto处理最方便。这也是为什么很多大型项目,开源项目,包括Linux,都会巨量的出现goto来处理错误!

上一篇 2023年01月09 06:23
下一篇 2022年12月26 12:11

相关推荐

  • 怎样下载监控视频

    一、方案背景随着智能制造、中国制造2025等战略相继出台,监控视频怎么下载下来观看,制造业的转型已然进入实质阶段。工厂智能管理受到广泛关注,工厂的管理者们还承受诸多困扰。厂区外部管理:①工厂贵重物品较

    2023年01月02 254
  • MartinKleppmann《数据密集型应用系统设计》作品简介与读书感悟

    利用您的停机时间阅读一些好东西PhotobyDavidIskanderonUnsplash我希望您能很好地保护自己的健康,并保持社交距离,以帮助缓解SARS-CoV-2感染的曲线。在这些艰难时期,我们

    2022年12月15 255
  • 怎样用数字骂人

    今天突然之间非常好奇,为什么那么多数字,偏偏250是骂人或者贬低人的意思呢,好奇咋办,探索。综合了多方资料,本人感觉可以从两个方面来理解。二、第二个我们就要从历史和民间故事来找找溯源。

    2023年01月03 255
  • 苹果怎样截长图,苹果14怎么滚动截长图片

    说起截长图,这应该是不少iPhone用户心中的痛。当有些场合需要截取一个长图画面时,安卓用户一张长截屏就搞定,而iPhone用户却只能默默甩出八九张单页截图,有苦说不出。为了拯救广大iPhone用户,

    2022年12月31 299
  • [美]KyleSimpson《你不知道的JavaScript(上卷)》作品简介与读书感悟

    书籍简介你不知道的JavaScript获取方法关注微信公众号:申霖,发送:0935简介:曾经的军队精英如今却成了黑道份子,一个特殊的任务却让他混迹黑道。是堕落,还是龙腾九天?一样的黑道故事,不一样的黑

    2022年12月21 249
  • 怎样建立微信群,怎样建立微信群二维码

    方法一:1、在微信界面点击右上角【+】;2、点击【发起群聊】;方法一:直接发起群聊,打开手机微信,点击右上角+号。点击发送群聊,勾选需要的好友,点击完成即可。方法二:面对面建群,打开手机微信,点击右上

    2022年12月27 291
  • u盘怎么格式化

    我们都在知道如何U盘被格式化了,那么里面的数据一般都会丢失,此时如果数据没有做备份,那么单靠自己就没办法进行数据恢复了。所以此时就需要用到专业数据恢复软件进行快速恢复。U盘格式化恢复工具:迅米数据恢复

    2023年01月09 217
  • 怎样申请微信号,教你注册第二个微信号

    我们都知道在微信里,同一个手机号码只能注册一个微信号,这样很多上班族要想把工作和生活区分开,又或者有些事不想被另外一半给知道,所以就必须要申请一个新的手机号,来注册一个新的微信,这样每个手机号的月消费

    2022年12月26 275
  • 怎样设置相册密码,oppo手机怎样设置相册密码

    众所周知,苹果向来很注重对用户隐私的保护,但iOS系统的隐私保护也会有考虑不周的时候,比如在iOS15及更早版本的手机中,相册中的隐私照片或其它重要照片想要完全隐藏或者达到上锁效果的话还是很麻烦的!苹

    2023年01月05 262
  • 怎样注销qq

    [闽南网]­QQ号怎么注销,最近推出了账号注销功能,大家多余或不用的账号都能进行注销了,不过不少人还不知道在哪注销QQ账号,过了5天了QQ勒索视频会发吗,下面就来一起看下QQ号注销流程吧。,­QQ号注

    2022年12月26 247
  • 无法连接网络怎么办,以太网一直显示电缆被拔出

    很多朋友在用电脑的时候,经常会出现断网的现象,网络无法连接或者连不上,不管再怎么尝试,就是没有效果,那么接下来小编来教大家三种方法,解决无法连接网络的问题。一、启动WLANAutoConfig服务1.

    2023年05月31 238
  • 怎样查找删除的照片,手机怎样查找删除的照片

    微信上有我们重要的聊天记录。有时候我们不小心误删了聊天记录,手机怎样查找删除的照片,导致图片无法查看。今天教大家如何一键恢复微信中误删的照片。我用这种方法把它们都找回来了。,1.微信聊天时收发的图片一

    2023年01月06 249
  • 怎样发红包给微信好友,微信红包和转账键不见了

    逢年过节,如果亲友不在身边,在微信群里发个红包热闹一下,是不错的选择。那么,怎么在手机上发红包?今天就来学一学如何用微信支付宝发红包。1、在手机页面中找到“微信”APP,并打开。/iknow-pic.

    2022年12月28 226
关注微信