跳轉到

探索反覆運算

挑戰:反覆運算陣列,在各個位置放置寶石和開關

簡介

在下方程式碼中,你可以使用 columns 陣列來在關卡世界中的每個直欄放置寶石和開關。此過程叫做反覆運算,它可以讓你在陣列中為每個項目執行動作。

範例

若要反覆運算,請使用 for-in 迴圈,它是一種 for 迴圈的類型

for currentColumn in colums {
   world.place(Gem(),atColumn:currentColumn , row:1)
}
for-in 迴圈中會在陣列中替每個變數執行程式碼區塊。在上方範例中, currentColumn 是儲存 columns 陣列中數值的變數。此數值會傳遞到 place 方法的 column 參數,以決定要放置寶石的直欄。

每次 for-in 迴圈執行時, currentColumn 會前往陣列中的下一個項目,直到沒有剩下的項目。

  1. 完成會在陣列中反覆運算的的 for 迴圈。

  2. 在迴圈中,在每個直欄放置寶石和開關。

img

講解

試著在迴圈中放置寶石和開關,就能輕鬆完成任務了!

解答

請務必嘗試解題

請同學務必嘗試自己解題,不要直接看答案。學習程式時最好的學習方法是自己嘗試解題,程式設計不會只有一種寫法,請通過不斷的嘗試和優化來找到屬於自己最好的解答。

1
2
3
4
5
let columns = [0, 1, 2, 3, 4]
for currentColumn in columns {
    world.place(Gem(), atColumn: currentColumn, row: 1)
    world.place(Switch(), atColumn: currentColumn, row: 1)
}

後記

現在你學會反覆運算了!

採用反覆運算陣列的方式來建構世界,比一次只放置一個項目要快得多。若要反覆運算陣列,請使用 for-in 迴圈為陣列中的每個項目執行動作