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