把“hello”打印10次
openkk 12年前
<p> 今天上网看到一篇老博文<a href="/misc/goto?guid=4958187725725654549" target="_blank">《Coder or Clown?》</a>, 文章作者主要想表达的意思是他作为面试官,面试了很多程序员,他发现很多程序员就是小丑,并把他们分类列举。这篇去年发表的文章被很多人转载翻译,作为茶 余饭后调侃程序员的佳品。我看了也是一笑而过,但是其中作者说的第一个事例却引起了我的兴趣,虽然很搞笑,但是这其中似乎隐藏着一些coder的情怀。</p> <p> 这个故事是这样的,作者面试了一个叫做Ada的毕业生,她是一位程序新手。作者给他出了一道题目,让她在纸上写下一段程序,目的是打印“hello”10次,无论用什么语言写都可以。于是这位可爱的学生在纸上写下了10句print "hello"。</p> <p><img alt="把“hello”打印10次" src="https://simg.open-open.com/show/fac05671074ed5931a4bc388e70d90f6.png" width="119" height="246" /></p> <p> 作者给出的评语是:“无论如何,拼写都是正确的”。这本身是一件很搞笑的事情,我当时也很欢乐,虽然不知道是不是真有其人。我也就开开心心的把整片文章看完,作者的语言很幽默。评论很多,我稍稍看了一下发现许多人对Ada这件事耿耿于怀,甚至还有人说那是最佳答案。</p> <blockquote> Ada的做法很好, 但更好的做法应该是如下: <br /> print “hello hello hello hello hello hello hello hello hello hello” <br /> 优点: <br /> 1. 代码清晰易读 <br /> 2. 避免了循环,不会破坏CPU流水线,提升了效率 <br /> 3. 改多次I/O函数调用为一次调用,提升了效率 </blockquote> <p> 看 到这个评论的时候我笑了半天^ ^,不过这位朋友说的挺有道理。我仔细想了一下,觉得打印这个单词10次,也许这真是一个比循环更好的办法。我记得还在上学的时候,老师曾今说到在什么情 况下使用循环,好像是说某一个操作要重复执行大于3次,那么就应该用循环结构。当然,现在看来这个说法也很搞笑,为什么要3次以上,为什么不是4次?我们 再回来看这个问题,首先要写10次hello并不费力,而且他人也一眼就能看条语句的目的是输出10个hello这串文字,而用循环的话就没有这么直观 了。</p> <p> 其实作为程序员最忌讳的就是死板,一成不变循规蹈矩的编程首先就会让自己厌倦。多思考,多实践才是最好的提高手段。那么大家能说说写 10次print "hello"与使用for循环相比有什么不妥吗?难道影响程序可读性?影响执行效率?不会是说占用了更多的磁盘空间吧(笑)。我还看到一个更有意思的评 论:</p> <blockquote> 我相信任何编程语言的for循环都不会简单过vim的yy10p的。 </blockquote> <p> 哈哈,真的很有意思。大家可以尝试一下用vim写代码挑战for循环,我相信这个朋友说的没错。PS:这个朋友的评论有个错误我要纠正一下,正确的应该是yy9p,同时这样也少敲了一次键盘。<br /> <br /> 本文转载自: <a href="/misc/goto?guid=4958523304517526220" rel="nofollow" target="_blank">http://www.svoo.org/post/216/</a> </p>