把“hello”打印10次

openkk 12年前發布 | 7K 次閱讀 編程

        今天上網看到一篇老博文《Coder or Clown?》, 文章作者主要想表達的意思是他作為面試官,面試了很多程序員,他發現很多程序員就是小丑,并把他們分類列舉。這篇去年發表的文章被很多人轉載翻譯,作為茶 余飯后調侃程序員的佳品。我看了也是一笑而過,但是其中作者說的第一個事例卻引起了我的興趣,雖然很搞笑,但是這其中似乎隱藏著一些coder的情懷。

        這個故事是這樣的,作者面試了一個叫做Ada的畢業生,她是一位程序新手。作者給他出了一道題目,讓她在紙上寫下一段程序,目的是打印“hello”10次,無論用什么語言寫都可以。于是這位可愛的學生在紙上寫下了10句print "hello"。

把“hello”打印10次

        作者給出的評語是:“無論如何,拼寫都是正確的”。這本身是一件很搞笑的事情,我當時也很歡樂,雖然不知道是不是真有其人。我也就開開心心的把整片文章看完,作者的語言很幽默。評論很多,我稍稍看了一下發現許多人對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/

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!