CODEMONKEY 56-70基礎課程- for循環森林【上】

學習目標

到現在為止,你已經掌握了一些基本的方法。諸如“step”和“turn”、簡單循環和變量等功能。

在本課中,我們將介紹一種新的循環“for”,“for”循環看起來很嚇人,但實際上是很簡單的。遍歷集合是計算機中的一個基本概念。在編寫代碼時經常使用,所以確實值得多花一些時間練習使用它。

1、認識簡單循環和“for”循環之間的區別

2、明白如何以及何時使用“for”循環

知識講解:

“for”循環有兩部分:循環變量和數組。循環變量是我們分配的一個名稱。它可以是我們想要的任何名稱,跟我們定義其它變量一樣。Codemonkey里經常用數組的第一個字母進行命名。

回憶一下,數組是對象的集合。例如:我們有一個數組含有六個香蕉,每個香蕉都有自己的名字,所有的香蕉一起有一個名稱,它是數組的名稱,第56關就可以來說明這一點。

實戰練習:

第56關:點擊一個香蕉,旁邊會出現兩個按鈕,上面那個是這個香蕉的名字,試著點擊另一個香蕉,您將看到每個香蕉的名稱都有不同的編號。下面的按鈕是數組的名稱。這六個香蕉都屬于數組“bananas”,因此不管我們點擊哪個香蕉,下面的按鈕都顯示“bananas”,如下圖所示。

CODEMONKEY 56-70基礎課程- for循環森林

本關已提供了可以正確運行的代碼,如下圖所示。

CODEMONKEY 56-70基礎課程- for循環森林

for(告訴計算機這里有一個“for”循環)b(定義循環變量)in(“for”循環語法的一部分)bananas(數組的名稱)

turn To b(b是循環變量,指的是數組的一個對象)

step distanceTo b(b是循環變量,指的是在數組的一個對象)

需要能夠理解b與bananas的關系,這里b是一個變量,bananas是一個數組,每次都將從數組中取出一個對象賦值給變量b,即b = bananas[0]、b = bananas[1]、b = bananas[2]、b = bananas[3]、b = bananas[4]、b = bananas[5],這樣重復去吃掉每一個香蕉,運行的時候注意觀察,小猴吃香蕉的順序。

第57關:這一關我們需要手動寫點代碼了,上一關你明白了b代表的就是一個香蕉對象,那么這一關你就會很容易過關了。(思考,如果我將第一行代碼改為:for a in bananas那么后面應該怎么寫?)

CODEMONKEY 56-70基礎課程- for循環森林

第58關:這一關我們又需要烏龜幫忙了,如果還跟上一關一樣的方法那么你會發現小猴“撲通、撲通”的掉水里了…,因此本關要注意的就是,明確讓哪個對象(小猴 or 烏龜)面向香蕉,并移動過去吃掉?!敬鸢敢娢哪?

CODEMONKEY 56-70基礎課程- for循環森林

第59關:這一關首先要把可惡的老鼠們趕走,剩下的就是要完整的寫出一個for循環了【答案見文末】

第60關:(綜合練習),這一關需要我們書寫全部完整代碼,不要怕,我們都已經身經百戰了對吧?好吧是半百。這一關只不是過是上一關的一個小小的演變,我們不會碰到可惡的老鼠,只不過是一座小橋罷了,如下圖所示。

CODEMONKEY 56-70基礎課程- for循環森林

思路很簡單,首先我們需要通過小橋,然后利用for循環,吃掉每一個香蕉?!敬鸢敢娢哪?

好了,先休息一下,插播一個“廣告”,你知道什么是算法嗎?

為了解決某個問題或完成某件事而執行的一系列操作稱之為算法。完成相同或類似任務時不同的算法可能在性能上有所差異,好的算法在功能上可能與時間和資源消耗、可讀性等差異有關。

我們為每一關挑戰編寫的解決方案就是算法的表示,換句話說,一系列描述了我們希望計算機在編程語言中執行的語句即為算法。表示算法的方法有很多種,例如如流程圖、偽代碼、可視化代碼塊等等。

繼續闖關:(用for循環控制其它對象)

第61關:通過for循環控制烏龜來為小猴鋪路,還增加了一個變量x,運行一下發現烏龜前進的距離x不對,可以通過直尺工具測量一下,如下圖所示。

CODEMONKEY 56-70基礎課程- for循環森林

那么20應該在哪寫呢?最后再讓小猴前往香蕉即可過關,這里注意小猴最后前進不屬于for循環的一部分,因此代碼是沒有縮進的。

第62關:本關提示“小心走路 ! 注意腳步 !”這一關要注意的就是在前往香蕉之前要先回到木筏處,因此我們的算法應該是這樣:每次循環先面向木筏,然后移動到木筏處,再面向數組中的香蕉,前往香蕉。下圖中不同的顏色表示了每次循環要執行的操作,試著根據這個思路完善代碼吧。

CODEMONKEY 56-70基礎課程- for循環森林

第63關:這一關沒有任何代碼,算是一個比較綜合的練習關卡,我們先看下面的圖,如果按照之前的經驗,我們首先想到的是用for循環指定香蕉,但是發現,到達香蕉直線上是不通的,這么做小猴必定落水。那么我們換個思路,除了香蕉還有其他數組嗎?“對!小島是一個數組”,我們可以讓小猴一步一步的走完所有小島,香蕉不也就吃到嘴了嘛。

CODEMONKEY 56-70基礎課程- for循環森林

因此本關學習的就是通過for循環指定islands對象。如何正確的使用for循環你理解了嗎?

第64關,這一關看起來貌似有點復雜,沒關系,還記得我最早教大家怎么去找規律嗎?如下圖所示:

CODEMONKEY 56-70基礎課程- for循環森林

這樣我們是不是就很容易寫出代碼了?每次循環小猴移動到指定的對象烏龜身上,然后前進去吃到香蕉。

思考:這里為什么用for循環指定了烏龜,而不指定香蕉呢?

假設我們指定香蕉,那么代碼就如下所示:

for b in bananas

step 7

#烏龜前往b

發現最后一步烏龜的對象無法明確指定,因此選擇for循環指定的對象就是我們循環內將要對他進行指定操作的那個才是合適的。

第65關:這一關與上一關很像,可以說相對還要簡單一點,還是用我們找規律的方法幫助我們寫代碼(圖解其實就是我們表示算法的一種方式)

CODEMONKEY 56-70基礎課程- for循環森林

右邊代碼提示部分其實設置了一個小陷阱,中間只空了一行,并不代表只需要完善一行代碼就可以了,大家不用理會,還是要根據我們分析去完善。

答案:

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林

CODEMONKEY 56-70基礎課程- for循環森林


本站內容未經許可,禁止任何網站及個人進行轉載。