目標
- 瞭解程式由哪三種基本的結構組成
- 瞭解迴圈的概念
- 掌握times的結構與用法
三種基本結構
計算機程式由三種最基本的結構組成,它們分別是:
- 順序結構
- 迴圈結構
- 選擇結構
千萬不要被這些陌生的術語給嚇住了,它們非常簡單,它們其實是根據我們日常思考和處理問題的方法提煉得來的。
下面讓我給你一一道來。
順序結構
什麼是順序結構?
讓我們通過日常生活中的例子,來說明什麼是順序結構。想一想,在早上起床鬧鐘響了之後,你會做些什麼事情。
假設你是個早睡早起的好孩子,那麼早上鬧鐘響了以後,你會依次做以下事情:
- 起床
- 關閉鬧鐘
- 穿衣
- 洗漱
- 整理
- 出門
以上就是一個很好的順序結構的例子。不難看出,順序結構就是指按照從前至後的順序,依次做不同的事情。
在之前的所有關卡中,我們所寫的程式碼都是順序結構的,都是從第一條指令開始執行,一直到最後一條。
迴圈結構
那什麼是迴圈結構呢?讓我們仍然以上面的例子來進行說明。
假設前一天晚上你熬夜到了凌晨兩三點,早上六點半時,鬧鐘準時響了,此時你想多睡幾分鐘,但又怕睡過頭了。於是,
- 鬧鐘響了
- 起床
- 關閉鬧鐘
- 接著睡覺
- 鬧鐘響了
- 起床
- 接著睡覺
......
上面就是一個典型的迴圈結構。所謂迴圈結構,就是指重複地做一些事情。
選擇結構
那選擇結構又是什麼樣的呢?讓我們繼續以上面的例子來解釋。
早上出門後,肚子都餓得咕咕叫了,你來到早餐店,你和老闆發生瞭如下的對話:
- 問:今天你吃常德牛肉粉還是武漢熱乾麵?
- 答:常德牛肉粉
- 問:吃圓的還是吃扁的?
- 答:圓的
- 問:吃紅燒牛肉的還是吃麻辣牛肉的?
- 答:紅燒牛肉的
你看,上面的3次問答,其實就是3次選擇。在計算機的世界裡,這就是3個選擇結構的應用。
times指令格式
選擇結構我們放在後面學習,今天讓我們先來學習一個最基本的迴圈結構——times,它的格式如下:
n.times ->
....迴圈體
其中,n是迴圈重複的次數。迴圈體(所有參與迴圈的指令)中的指令會被重複執行n次。之後,計算機就會結束times迴圈,接著執行接下來的語句。
需要注意的是,
- times和->之前有一個空格,且是不能省略的
- 迴圈體不能從某一行的最開始處書寫民,在它前面必須有一個Tab.(上述以4個.代表tab鍵)
下面是一段典型的times迴圈。
times的應用
讓我們通過下面這個關卡來更好地理解什麼是times迴圈,以及它的作用。
下面是我自己建立的一個關卡。
如果使用順序結構,很明顯,小猴子需要依次完成以下動作:
step 10 # 移動 10 步
turn left # 左轉
step 10 # 移動10步
turn left # 左轉
step 10 # 移動10步
turn left # 左轉
step 10 # 移動10步
turn left # 左轉
step 20 # 移動20步
上述解題方法使用的就是順序結構的思維。
在學習times之前,我們只能將程式寫成上述的形式,裡面有很多重複的程式碼,不論是檢視或是修改起來都非常的繁瑣。
請注意,圖中有個不斷變換位置的桔黃色進度條,它表示被高亮的這一條語句當前正在被執行。這是一個相當實用的功能,通過觀察這個進度條,你就能夠實時地知道當前計算機正在執行哪一條指令了。
如果遊戲執行速度過快,來不及觀察,你可以在設定皮膚上調慢執行速度,這樣就可以更加仔細觀察進度條的移動。
對於這一個關卡,如果使用times迴圈,那上面的程式碼就會簡潔多了,它可以寫成如下的形式:
4.times ->
step 10 # 移動10步
turn left # 左轉
step 20 # 移動20步
程式碼的執行流程如下圖所示:
請仔細觀察上圖中桔黃色的進度條是怎樣一步一步地移動的。
上述程式碼有三點需要注意:
- times與->必須有一個空格
- 迴圈體前面必須有一個tab鍵
- step 20這一條指令前不能有tab鍵,否則,它就成了times迴圈結構的一部分了
讓我們來看一下,如果在step 20前面有tab鍵,程式是怎麼執行的。
你看,如果在step 20的前面有tab鍵的話,計算機就會認為它也是迴圈體的一部分了。
好了,本章的內容就到這裡了,趕緊通過作業來檢驗一下你的學習效果吧。
作業
- 故事模式21 - 30關
- 進階模式3-1 - 3-10關
注意,一定保證要所有關卡都拿到三顆星。
小結
- 計算機的三種基本程式結構是順序結構、迴圈結構和選擇結構
- times迴圈的格式,times與->之間的空格不能省,迴圈體前的tab鍵不能忘記
- 通過桔黃色的進度條,可以觀察計算機指令的執行流程