在第3章中,我們學習了times迴圈。times迴圈可以讓一段**重複執行指定的次數。
本章我們將學習另一種迴圈結構——for迴圈。它同樣能讓一段**重複執行,但無需指定重複的次數。
那這段**會重複執行多少次呢?還記得上一章中學習的陣列嗎,for迴圈中的陣列裡有多少個物件,**就會重複執行多少次。
下面讓我們開始本章的學習。
首先來看for迴圈的格式:
forelementinarray是不是沒有看明白?哈哈,沒關係,我來解釋一下你就清楚了。....待重複執行的**
以上for迴圈結構的意思是:對於陣列(array)裡的每乙個元素(element),都執行一次「待重複執行的**」。也就是說,陣列裡有多少個元素,就重複執行多少次下面的**。
看了上述文字你也許還是感覺很矇,那就讓我們通過下面這個關卡來切實體驗一下for迴圈的用法吧。
這是我為times迴圈那一章節所設計的乙個關卡,它同樣可以使用for迴圈來解決。
此關卡中有4只香蕉,它們共同組成了乙個bananas陣列。這4只香蕉都是這個陣列裡的元素,分別使用bananas[0],bananas[1],bananas[2]和bananas[3]來指代它們。
如果使用for迴圈,那麼這一關的解法如下:
for b in bananas注意,以上**中的.僅用來表示空格,測試執行時請不要輸入。....turnto b
....step distanceto b
根據上述所介紹的for迴圈結構用法,因為bananas陣列裡有4個元素,所以迴圈會被執行4次。每一次迴圈時,都會依次從陣列中取乙個元素,將它賦值給b。
為了更深入的理解,我們在這裡將上述for迴圈展開,可以得到如下的**:
b = bananas[0]怎麼樣,看了以上展開的**之後,for迴圈是不是更容易理解了?turnto b
step distanceto b
b = bananas[1]
turnto b
step distanceto b
b = bananas[2]
turnto b
step distanceto b
b = bananas[3]
turnto b
step distanceto b
為了測試你是不是真的理解了for迴圈的用法,我們來做如下乙個測試。
請在瀏覽器裡輸入 , 可是直接點選下方的,以開啟這一測試關卡。
很明顯,面對如此多的香蕉,肯定是不能乙隻隻地去收集了,那樣太機械了,操作起來也不現實。所以,for迴圈這個時候就派上大用場了。
希望你能順利通關!
還有一點需要注意,for迴圈是可以巢狀的。
什麼是巢狀呢?你有沒有見過俄羅斯套娃,或者是象牙球雕?
對,for迴圈的巢狀就是指,在乙個for迴圈的裡面,仍然是for迴圈。下面請看一下for迴圈的兩層巢狀:
for a in arraya以上即是乙個兩層的for迴圈,可以看到,在最外層的for迴圈裡面,包含了另乙個for迴圈。....for b in arrayb
........待重複執行的**段一
....待重複執行的**段二
若將以上**展開,可以得到以下**:
a = arraya[0]b = arrayb[0]**段一
b = arrayb[1]
**段一
b = arrayb[2]
**段一
.... # 直到內層的for迴圈結束
**段二
a = arraya[1]b = arrayb[0]**段一
b = arrayb[1]
**段一
b = arrayb[2]
**段一
.... # 直到內層的for迴圈結束
**段二
.... # 直到外層的for迴圈結束測試一下你是不是真正地理解了for的巢狀,請問,假設arraya陣列中有3個元素,arrayb陣列中有5個元素,那麼,在這個兩層巢狀中,**段一一共被執行了多少次?**段二呢?
公布答案啦,**段一一共被執行了3x5=15次,**段二一共被執行了3次。
怎麼樣,你答對了嗎?如果你的答案不正確,請再仔細思考一會兒。
75關即需要使用到for的巢狀結構,你也可以使用它來自測。
好了,for迴圈的內容就這麼多了,課後作業趕緊做起來吧!
CodeMonkey少兒程式設計第7章 函式
本章我們學習乙個新的概念 函式。你可以簡單的將函式看作為乙個黑匣子,給它輸入引數後,它將會按照一定的規則,執行相應的指令或輸出資料。讓我們用生活中的乙個小物件來理解什麼是函式。假設你家有一台榨汁機,通過它,就能榨出鮮美可口的果汁。而具體榨出來的是什麼果汁呢?那就要看你放進榨汁機的是什麼水果啦。而對於...
CodeMonkey少兒程式設計第5章 陣列與索引
來繼續我們的程式設計之旅!這一章我們來介紹陣列以及如何使用陣列裡面的元素。還記得前面章節留下的懸念嗎,為什麼我們是從第0章,而不是第1章開始編號的?學習完本章的內容後,你就會知道答案了。對於同一類事物,為了便於管理,我們將它們視作乙個集合,稱這個集合為陣列。例如下圖中的所有香蕉組就成了乙個陣列ban...
少兒程式設計 少兒程式設計教材
由於網際網路的蓬勃發展,給我們的生活也帶來了很大的便利,尤其教育方面。越來越多的家長為了孩子能夠學習到更多的知識,從小就給孩子報各種特長班,各種技能培訓。格物斯坦表示 尤其是少兒程式設計,受到了眾多家長的青睞,因為少兒程式設計不僅僅提公升的是孩子的邏輯思維能力,更是乙個全面綜合能力的提公升。在我們身...