微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

把 hello 打印 10 次

2018-06-15 22:00 程序员之家

这个故事是这样的,作者面试了一个叫做Ada的毕业生,她是一位程序新手。作者给他出了一道题目,让她在纸上写下一段程序,目的是打印“hello”10次,无论用什么语言写都可以。于是这位可爱的学生在纸上写下了10句print “hello”。



作者给出的评语是:“无论如何,拼写都是正确的”。这本身是一件很搞笑的事情,我当时也很欢乐,虽然不知道是不是真有其人。我也就开开心心的把整片文章看完,作者的语言很幽默。评论很多,我稍稍看了一下发现许多人对Ada这件事耿耿于怀,甚至还有人说那是最佳答案。


Ada的做法很好, 但更好的做法应该是如下:


print “hello hello hello hello hello hello hello hello hello hello”


优点:

1、代码清晰易读

2、避免了循环,不会破坏CPU流水线,提升了效率

3、改多次I/O函数调用为一次调用,提升了效率


看到这个评论的时候我笑了半天^ ^,不过这位朋友说的挺有道理。我仔细想了一下,觉得打印这个单词10次,也许这真是一个比循环更好的办法。我记得还在上学的时候,老师曾今说到在什么情况下使用循环,好像是说某一个操作要重复执行大于3次,那么就应该用循环结构。当然,现在看来这个说法也很搞笑,为什么要3次以上,为什么不是4次?我们再回来看这个问题,首先要写10次hello并不费力,而且他人也一眼就能看条语句的目的是输出10个hello这串文字,而用循环的话就没有这么直观了。


其实作为程序员最忌讳的就是死板,一成不变循规蹈矩的编程首先就会让自己厌倦。多思考,多实践才是最好的提高手段。那么大家能说说写10次print “hello”与使用for循环相比有什么不妥吗?难道影响程序可读性?影响执行效率?不会是说占用了更多的磁盘空间吧(笑)。我还看到一个更有意思的评论:


我相信任何编程语言的for循环都不会简单过vim的yy10p的。


哈哈,真的很有意思。大家可以尝试一下用vim写代码挑战for循环,我相信这个朋友说的没错。PS:这个朋友的评论有个错误我要纠正一下,正确的应该是yy9p,同时这样也少敲了一次键盘。


来源:VAL 

链接:http://www.svoo.org/post/216/  


公众号内回复“1”带你进粉丝群

 
程序员之家 更多文章 千万不要学习web前端开发,因为...... 【年度精选|含源码】2018程序员必备碎片化学习资料,1T竟然还不要钱 从 Java 到 Kotlin,再从 Kotlin 回归 Java 再轰冯导,和科研人员比你只是个奢靡的戏子 高逼格!程序员睡前发「73 76 79 86 85」 女孩熬夜破解
猜您喜欢 程序员招租广告,手机号竟是一串代码 程序是我的生命,但我相信爱她甚过爱我的生命 Mojo::Webqq揭秘[二]-- 验证码的来龙去脉 为什么我们选择Android Python爬取网站VIP资源