把 hello 打印 10 次,你会怎么做?

共 1493字,需浏览 3分钟

 ·

2020-07-30 17:29

来源:VAL

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


上网看到一篇老博文《Coder or Clown?》,文章作者主要想表达的意思是他作为面试官,面试了很多程序员,他发现很多程序员就是小丑,并把他们分类列举。这篇去年发表的文章被很多人转载翻译,作为茶余饭后调侃程序员的佳品。我看了也是一笑而过,但是其中作者说的第一个事例却引起了我的兴趣,虽然很搞笑,但是这其中似乎隐藏着一些coder的情怀。


这个故事是这样的,作者面试了一个叫做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,同时这样也少敲了一次键盘。


最近热文:
一周内B站疯转5.6W次,好东西呀!
招生海报被指似色情网站?最近都流行这样的方式吗?
精选15款JAVA开源项目脚手架
除了 P 站,程序员摸鱼还喜欢上哪些网站?
一个员工的离职成本到底有多恐怖!
近期大家最刚需的工具,必须推荐收藏!
阿里正式取消周报:打击低效加班,拒绝形式主义!
卧槽!GitHub评分很高的5个开源项目!
限时加入!程序员读者微信群,先到先得!

2T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,人工智能,考研,软考,英语,等等。在公众号内回复「资源」,即可免费获取!!

明天见(。・ω・。)ノ♡
浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报