學習一種新的編程語言是頗有趣的。每當Jim Hall嘗試學習新的變量時,他都會專一於定義變量、編寫語句和計算表達式。一旦他對這些概念有了大體的理解,一般能夠本身找出其他的概念。大多數編程語言都有一些類似之處,所以一旦您瞭解了一種編程語言,學習下一種編程語言就須要瞭解其獨特的細節並識別其中的不一樣之處。程序員
爲了幫助Jim Hall練習一種新的編程語言,他喜歡編寫一些測試程序。Jim Hall常常編寫的一個示例程序是一個簡單的「猜想數字」程序,其中計算機選擇一個介於1和100之間的數字,並要求猜出數字。程序循環直到Jim Hall猜對了。shell
「猜想數字」程序在編程語言中使用了幾個概念:如何爲變量賦值、如何編寫語句以及如何執行條件計算和循環。對於學習一種新的編程語言來講,這是一個很好的實踐實驗。編程
巴什是大多數Linux系統的標準shell。除了提供豐富的命令行用戶界面外,bash還支持如下形式的完整編程語言:劇本.bash
您能夠經過編寫「猜想數字」遊戲的版原本探索Bash。如下是個人實現:編程語言
腳本中的第一行,#!/bin/bash告訴Linux使用Bashshell運行這個腳本。每一個腳本都以#!字符對,這表示這是一個shell腳本。接下來會發生什麼#!就是要運行的外殼。在這種狀況下,/bin/bash是彈殼。學習
若要將值賦值給變量,請列出變量的名稱,後面跟着=籤個字。例如,語句guess=0爲guess變量。測試
還可使用read聲明。若是你寫read guess,Bash等待用戶輸入一些文本,而後將該值存儲在guess變量。spa
若要引用變量的值,請使用$在變量名以前。所以,在guess變量,您可使用$guess.命令行
您能夠爲變量使用任何您喜歡的名稱,可是Bash爲其自己保留了一些特殊的變量名。一個特殊的變量是RANDOM,這會在每次引用它時生成一個很是大的隨機數。3d
若是要在存儲值的同時執行操做,則須要將語句括在特殊括號中。這將告訴Bash首先執行該語句,而且=將結果值存儲在變量中。若要計算數學表達式,請使用$(( ))關於你的陳述。雙括號表示算術表達式。在個人例子中,number=$(( $RANDOM % 100 + 1 ))計算表達式$RANDOM % 100 + 1而後將值存儲在number變量。
標準算術運算符,如+(加上)-(減),*(乘),/(分),和%(模數)適用。
這意味着number=$(( $RANDOM % 100 + 1 ))生成一個介於1到100之間的隨機數。模運算符(%)返回餘數除以兩個數字以後。在這種狀況下,Bash將一個隨機數除以100,剩下的餘數在零到99之間。經過將一個值加到這個值,就能夠獲得一個介於1到100之間的隨機數。
巴什支架條件表達式和流量控制就像循環。在「猜想數字」遊戲中,bash繼續循環,只要在guess不等於number。若是猜想小於隨機數,則Bash打印「過低」,若是猜想大於隨機數,則Bash打印「過高」。
如今您已經編寫了Bash腳本,您能夠運行它來玩「猜想數字」遊戲。繼續猜想,直到找到正確的數字:
每次運行腳本時,Bash都會選擇不一樣的隨機數。
當學習一種新的編程語言時,這個「猜想數字」遊戲是一個很好的入門程序,由於它以一種很是簡單的方式練習了幾個常見的編程概念。經過在不一樣的編程語言中實現這個簡單的遊戲,您能夠演示一些核心概念,並比較每種語言的細節。
你有最喜歡的編程語言嗎?你會怎麼寫「猜數字」遊戲?遵循本文章,查看您可能感興趣的其餘編程語言的示例。
最後,若是你也想成爲程序員,想要快速掌握編程,趕忙加入學習企鵝圈子!
裏面有資深專業軟件開發工程師,在線解答你的全部疑惑~編程語言入門「so easy」
編程學習書籍:
編程學習視頻: