趣文网,分享全网好句子、好文章!

优秀的程序员极少用break或者continue语句

时间:2023-06-26 04:14:01

相关推荐

优秀的程序员极少用break或者continue语句

写程序应该尽量的避免使用break和continue

for、while循环语句里出现return是没有问题的,但如果你的循环里出现了break和continue,往往是因为对循环的逻辑没有考虑情况,考虑周全了基本不需要break和continue。因为用了break和continue之后会让循环的逻辑和终止的条件变得复杂,难以确保正确的结果。

情景一:下面一段代码表示name里含有“bad”这个词,就跳过后面的循环代码。

这是一种“负面”的描述,它不是告诉你什么时候“做”一件事,而是告诉你什么时候“不做”一件事。想要弄清楚它到底要干什么,就必须搞清楚continue会导致哪些语句被跳过了,然后脑袋得有个逆向逻辑,才能知道它到底想做什么。

这就是为什么含有break和continue的循环很难理解,它们靠“控制流”来描述“不做什么”,而“跳过做什么”,到最后你也没有搞清楚它到底“要做什么”。

其实上面的代码其实完全可以摒弃continue:

这种代码是一种更加“正面”地描述,表示name不含“bad”的时候,就将它加到goodNames的链表里。当你再次读到这段代码时,就能清晰地呈现出它的条理和结构。

情景二:for和while循环头部有唯一终止循环的条件,但在循环体中加入break,实际增加了一个退出条件。

当condition2成立的时候,break就会退出循环。但往往只需要把这个条件合并到循环头部,就可以去掉break,而不需要再进行逆向思维。

情景三:很多break退出循环后,接下来就是一个return

下面函数检查names链表里是否存在一个名字,包含“bad”,包含就通过break跳出,并通过return返回结果。

这种break往往可以直接换成return true,而不是对result变量进行赋值,需要通过break出去后,最后才通过return返回。如果循环结束了还没有return,就返回false。 改完后同时消除了break语句和result这个变量。

很多的例子通过消除continue和break,无一例外使得代码变得条理清晰容易理解,也更容易确保正确结果。如果代码中出现了continue可以将continue的条件方向,如果代码中出现了break可以将break的条件合并到循环头部的终止条件里去掉break,而剩下的1%特别复杂的逻辑可以把循环里复杂的部分提取出来做成函数调用,这样就彻底地消除了continue和break。

编程不当当是一门技术,而且是一门艺术。

编程是一种创造性的工作,并不是说你写了多少多少万行代码了你就很牛逼。如果总是匆匆忙忙写出了代码,却不会回过头的推敲、修改和提炼,是很难精通这门艺术的。一个好的程序员删掉的代码比留下来的代码要多得多,如果你看见他写了很多代码,却没有删掉多少,那他的代码中一定有很多的垃圾。

好的代码不可能一蹴而就,代码灵感总是零零星星的陆续到来,所以再厉害的程序员都是通过很长一段时间的沉淀才能写出简单而优雅的代码。如果此时你反复提炼代码已经不再有进展不烦暂时放下过几个星期或者几个月再回过头来看,又会获得焕然一新的灵感。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(2)
  1. 张教官2023-12-09 19:07张教官[海南省网友]203.6.249.168
    我赞同这个观点,优秀的程序员会尽量避免使用这些语句,而是通过其他逻辑结构来实现代码的流程控制,这样代码会更加健壮和可维护。
    顶17踩0
  2. 九雷2023-09-17 11:40九雷[广东省网友]203.17.39.255
    这确实是一个很好的编程习惯,避免使用break或continue语句可以使代码更清晰易懂,遵循了良好的逻辑结构。
    顶0踩0
相关阅读
要传播信息而不是病毒!程序员借助AI 用500多种语言翻译洗手

要传播信息而不是病毒!程序员借助AI 用500多种语言翻译洗手

没错,不是方言,而是正在被使用的语言

2023-09-06

2021中考总复习之非连续性文本阅读附答案:机器学习+刷脸技术

2021中考总复习之非连续性文本阅读附答案:机器学习+刷脸技术

同学们,别玩手机了,赶快到下面的炼丹炉中炼一下自己的火眼金睛吧!一 、机器学习材料一:科学杂志:机器学习究竟将如何影响人类未来的工作?近几

2023-08-11

《爱情先生》大热 靳东化身情感专家 这15句话你也应该懂

《爱情先生》大热 靳东化身情感专家 这15句话你也应该懂

咱们靳东教师的确有跳脱自己之前的老干部风格,这次挑战了一个比较年青搞笑的人物,很生动、很逗比,有点贱萌贱萌的

2023-12-03

如何提高英语翻译能力?分享实用翻译经验—避免“望文生义”坑!

如何提高英语翻译能力?分享实用翻译经验—避免“望文生义”坑!

如果这个英汉转换能力不过关的话,翻译就会出现错误

2023-08-19

逗人开心的句子 笑到肚子疼!

逗人开心的句子 笑到肚子疼!

二、胖的原因,大概是瘦小的身体,容不下我这完美的人格

2022-12-19