把“hello”打印10次

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

今天上网看到一篇老博文《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,同时这样也少敲了一次键盘。

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

【编辑推荐】

  1. 程序员背着屌丝罪名还被当作是修电脑的
  2. 编程将死,程序员永存
  3. 超级程序员神话
  4. 美程序员走低龄化路线 12岁少年开发98款游戏
  5. 创业三十六条军规
责任编辑:张伟 来源: VAL's Home
相关推荐

2021-03-22 15:11:42

Windows 功能系统

2021-03-21 19:00:21

微软Windows 10Windows

2011-05-06 13:04:05

打印机无法打印

2017-10-25 09:39:23

BUG

2011-05-04 17:11:12

打印机

2011-05-03 11:27:08

老式针式打印机无法打印

2015-01-13 15:18:16

Moto联系

2023-08-23 18:56:46

2020-12-23 10:55:34

Windows 10Windows微软

2011-05-06 16:10:26

打印技巧

2015-03-18 17:38:05

Windows HelWindows 10

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2021-02-05 15:35:21

Redis数据库命令

2024-02-28 08:00:54

Web嵌入式嵌入式系统

2020-02-04 09:45:01

Windows 10打印机Windows

2011-04-26 13:31:05

喷墨打印机

2010-03-31 09:38:26

Oracle10g x

2015-08-03 09:19:23

2022-08-28 20:35:52

三次握手四次挥手TCP
点赞
收藏

51CTO技术栈公众号