Go语言之continue/break label(五)

作者 : 开心源码 本文共1146个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共191人阅读

前言详情:本人本来是C++开发工程师,使用C++已经有8年多的时间,最近在学习Go语言,在学习Go语言的时候,难免会拿Go语言与C++语言做少量比较。

一、写在前面的话:

最近碰到了,Go语言一个比较有趣的语法continue label和break label,这种语法C/C++却没有,但是却有与之相似的goto。不过C/C++中一般不喜欢也不推荐使用goto,起因是goto语句跳来跳去,很容易将代码的可读性降低,并且很容易出错,所以C/C++都不推荐使用goto语句。

至于Go为何保留goto语句,想来是由于goto语句的另外一件好处吧,就是对深层次的函数调用或者者递归调用,可以直接跳出来。

二、内容详情

本文提到的continue label和break label于goto语句有些相似,但是两者使用却不相同。

continue和break一般针对的都是使用它们最近的循环语句,用来终端后续操作或者者中断整个循环。

下面是continue和break的使用例子:

在一层循环里面,continue label和break label于上面的continue和break并没有区别,执行的结果也是一样的,continue label用来中断循环的本次操作,break label用于中断本次循环。

在二次循环以上,break和break label的区别就显现出来了,break会中断本次循环并且继续之后循环之后的语句。break label 不单单会终止本次循环,还会跳转到label处,如此以来break label所在的那层循环之后的代码也不会被执行到。

在二次循环之中,continue和continue label的区别也比较显著,continue只是中断循环的本一次操作,后续循环语句都会继续执行。continue label则是在内部循环的那一次操作终止之后,立马跳到label处继续上一层的下一次循环操作,而continue所在的那层循环之外的语句都会被跳过,这也就是为什么Skip :index: i 一致没有打印出来的起因。

三、总结概括

综上所述,continue label 是终止它所归属的最内循环的当前循环次数,并且跳转到label处继续执行,它所对应循环之后的那部分code不会被执行到。

break label是终止它所归属的最内循环整个循环,而后跳到label处开始执行,它所对一个的循环之后的那部分code不会被执行。

continue是终止执行它所归属的最内层循环的当前次数,并且继续执行 该循环的后续操作,该循环之外的后续代码也会继续执行。

break是? 终止执行它所它所归属的那次循环的整个循环操作,而后执行该循环之后的后续代码。


灰子做于二零一九年五月二十二日。

【原创作品,欢迎分享,请勿转载,谢谢尊重!!】

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Go语言之continue/break label(五)

发表回复