為什麼學習編程第一個程序總是hello world或輸出一個字元串?
這沒有任何意義呀,還不如做些計算…
你打電話或者試麥的時候總是說「喂!喂!」,這沒有任何意義呀,還不如念兩句詩
因為最簡單,一個程序可以看作輸入-&>計算-&>輸出。這三部分裡邊計算和輸入都可以省略。但是如果沒有輸出你就無法確認程序是否運行正確。所以最簡單的測試一般都是輸出。輸出0也是可以的,但是有點太沒有儀式感了。什麼是儀式感?傳統就是儀式感!所以輸出字元串「hello world」。
確認編譯環境的正常運行
程序員最愛喊的一句,編程改變世界,編程讓世界變得更美好。與世界對話,先打個招呼,還是比較禮貌的。
讓我想想以前用門電路編程的時候寫的是什麼。。。反正做不到hello world的程度,控制液晶顯示電路太難了,最多亮個燈什麼的。
其實你也可以輸出
It works!
2333
或者這個
&&&&It works!&
&&233333
作自己的計算,讓human去猜吧。
做了計算,然後呢?沒有輸出你怎麼知道程序運行了?至於做了計算並輸出,那還不得先學輸出?
農藥策略。。。。上來,先打一波輸出。。。。。
你找不出比這個更簡單的方法來確認編程環境正常運行的方法了。
為什麼學習編程還要上知乎問這個問題?這沒有任何意義呀,還不如去寫個程序練手……
有意義,可以長期激發你的好奇心,因為直到你開始上操作系統課程之前你都不會明白這行字究竟是怎麼出現在屏幕上的2333333
因為你計算你說到底也要cout,所以還是要從更基本的DPS,哦不,輸出來學起
如果你連程序怎麼進行輸出都不知道的話你還有心情學下去么····其實根本上是為了獲得成就感如果作些計算,1+1?2*2?這TM比hello world好像也沒高明多少···難不成你還要算微積分?更大的問題是個別語言甚至一個四則運算都可能會比較複雜(應該有吧,雖然我沒遇到過)就像第一個答案說的,如果不輸出···你什麼都不知道···
You know nothing。
hello world 是非常有含義的。
學會的一門新語言,第一句就是用來跟這個世界打招呼。可見創建這個傳統的人多麼有雄心壯志。
咿呀學語學會的第一句話可能是要吃要喝,爸爸媽媽,這是本能。
但是用一門新的語言說的第一句話是跟這個世界打招呼,接下來的不就是用這個語言來征服這個世界么。堪比凱撒的,「VENI VIDI VICI 」。(手動滑稽)
點石成金的魔法世界大門馬上就要拉開了,初學者站在門前小試法術,叫一聲 "hello world" ,不也是很有儀式么。
之後再接觸高深的魔法,那自然是在這入門之後了。
圖形學是畫個尤他壺...試一試..很酸爽..
誰說 Hello World 沒有計算了,如果你用 C++ 寫的話,肯定要用到 &<&< 這個運算符,這個運算符叫左移運算符,這不就是計算么。(當然,搞 C++ 那幫人抖機靈把它定義成了流操作了)
P.S. 我每次自己搭完梯子以後都會試一下 Google 能不能上。
很多回答都沒有考慮計算機發展歷史和背景,可知最早的hello world來自於 KR《C程序設計語言》,誕生於70年代末,或者有更早的也未可知。在那個屏幕還都是單色的時代,能在屏幕上列印出一句hello world還是很有意義的。
如果真做了計算了,你又會說唉,計算好簡單,沒意義,還不如XXX
我學的第一個程序大槪是程序詢問「What』s your name? 」然後輸入自己的名字,再輸出一句話「Hello, xxx」。我當時把名字直接輸到源代碼裡面去了,怎麼都編譯不過。
當時用的pascal語言,大槪這樣。
program xxx;
var name: string;begin writeln(』What』』s your name?』); readln(name);writeln(』Hello 』, name);
end.我當時自作聰明地讀懂了那句「英語」,以爲是要寫下自己的名字,於是我的程序變成了這樣
program xxx;var name: string;begin xxxxln readln(name);writeln(』Hello 』, name);
end.推薦閱讀: