一粒寶石,一粒很好的寶石!
但你知嗎?如果能夠把寶石串成一行總比一顆寶石好!
當然,我們知道一串寶石最好的排列方式是弄個迴圈
我們用一個 for 迴圈畫出一行 12 個寶石
由左至右橫跨螢幕
好像那樣,因此那是一個
for (定義新函數 i 等於 0; i 比 12 少; i ++)
然後我們把這條線移到這裏
現在我們有 12 夥寶石,但它們卻是在右方一個疊著一個
記住,我們要令它們在螢幕上橫向分佈
那就是我們得要更改 X
還有 36 現在就是 X,但我們想要它每次都不同
就是說我們要讓它因 i 而變動
我們可以做的是,例如 i 乘 36
所以第一個是 0,下一個是 36,再下一個是 72,以此類推
好!現在我們有了一串寶石
這使我想起印第安納‧瓊斯或阿拉丁裏面的場景
當英雄發現了地下寶藏、很多寶石時
但他們常常比我們現在發現更多的寶石
不只是一串寶石,而是一堆寶石!
那麼我們可以怎樣使寶石
佈滿整個畫面?
我們可以由重複 for 迴圈開始,複製、貼上
然後每次都更改 y
我們會把它改成 60,然後 90
現在我們有三行寶石了。酷!
但……這顯得有點悶,因為我做的
只是複製、貼上和更改 y
我們以往一般當我們察覺寫了一個像這個的編碼時
我們會說︰哦,或許我們只需要一個迴圈罷
但我們已經在用一個迴圈
有什麼辦法避免重複的複製貼上呢?
辦法就是我們所謂的嵌入式For迴圈
我們要弄一個外迴圈
這個迴圈就是當我們來到螢幕下方時需要注意的東西
然後我們內迴圈便會繼續執行它目前的指令
從左至右走
讓我告訴你這是什麼一回事
因此for-我們這次使用一個不同的變數,名叫 j,因為我們已使用 i
所以 for (定義新函數 j 等於 0; j 少於 13; j++)
好,這個就會成為我們的外迴圈,會執行上至下的指令
接下來我們把其中一個之前的 for 迴圈放進裏面
更正一下縮排,刪除原來的編碼,好了!
現在我們要做的是把它們疊起來
那就是要改 y,是吧?
我們剛才在複製貼上時已經更改了
所以 Y 一直是 90
我們想要 y 在每一行都不同
就如 x 取決於 i 一樣,我們要讓 y 也因 j 而改變
我們可以把這個改為 j 乘 30
好!好!很多寶石!好極!
那這又做了什麼
外迴圈弄了這個變數 j,把 j 增加至 13
每次執行外迴圈命令時,它也會執行內迴圈命令
內迴圈創造了變數 i,而 i 會增加到 12
每次內迴圈執行命令時,就會畫一個在 x 和 y 軸上的圖像, x 和 y 是基於終止 i 和 j
因此 i 比 j 更常改變
要更明白這個東西,不妨來把 i 和 j 的值顯示出來
我會在影像前後加上 //
然後設定一個填滿的顏色
我會用一個文字控制器去顯示 j 的值,輸入 j
然後我會把它放到這個適當的地方。好
我們可以看到 j 是由 0 到 12
這基本上就是我們一排排寶石的位置
我們會把 i 顯示出來,看看它如何變動
給 i 不同的顏色
我們會把 i 放到某處
我們更改 it’s x 使它會在畫面上橫跨螢幕
我們也給 y 更改
現在我們看到 i 是由 0 到 11
而 i,正如之前所說,變得更頻密
這一行的編碼比這一行編碼執行得更多
因為當這個內迴圈執行時,這一行便會執行
而這一行只會在外迴圈執行時執行
希望 i 和 j 的形象化
可以使你明白這些嵌入式For迴圈究竟發生了什麼事
現在回到我們的寶石那裏,它們是很酷的東西啊!
利用嵌入式For迴圈,你們可以做到很多事情
如果你想一想世界上所有東西都看似
平面網格、西洋象棋格、網格
星條旗上的星星、酷的圖案和背景圖畫
要是開始你的想像,就不如玩一下這個編碼程式
就嘗試改動影像
我會由改成心型開始
讓你知道我有多麼喜愛嵌入式For迴圈!喔~~