1 00:00:01,686 --> 00:00:04,237 一粒寶石,一粒很好的寶石! 2 00:00:04,237 --> 00:00:08,275 但你知嗎?如果能夠把寶石串成一行總比一顆寶石好! 3 00:00:08,275 --> 00:00:12,562 當然,我們知道一串寶石最好的排列方式是弄個迴圈 4 00:00:12,562 --> 00:00:16,162 我們用一個 for 迴圈畫出一行 12 個寶石 5 00:00:16,162 --> 00:00:19,523 由左至右橫跨螢幕 6 00:00:19,523 --> 00:00:22,304 好像那樣,因此那是一個 7 00:00:22,304 --> 00:00:31,186 for (定義新函數 i 等於 0; i 比 12 少; i ++) 8 00:00:31,186 --> 00:00:36,429 然後我們把這條線移到這裏 9 00:00:36,429 --> 00:00:40,305 現在我們有 12 夥寶石,但它們卻是在右方一個疊著一個 10 00:00:40,305 --> 00:00:43,401 記住,我們要令它們在螢幕上橫向分佈 11 00:00:43,401 --> 00:00:45,941 那就是我們得要更改 X 12 00:00:45,941 --> 00:00:49,524 還有 36 現在就是 X,但我們想要它每次都不同 13 00:00:49,524 --> 00:00:51,859 就是說我們要讓它因 i 而變動 14 00:00:51,859 --> 00:00:56,329 我們可以做的是,例如 i 乘 36 15 00:00:56,329 --> 00:01:02,687 所以第一個是 0,下一個是 36,再下一個是 72,以此類推 16 00:01:02,687 --> 00:01:04,575 好!現在我們有了一串寶石 17 00:01:04,575 --> 00:01:07,997 這使我想起印第安納‧瓊斯或阿拉丁裏面的場景 18 00:01:07,997 --> 00:01:11,306 當英雄發現了地下寶藏、很多寶石時 19 00:01:11,306 --> 00:01:13,732 但他們常常比我們現在發現更多的寶石 20 00:01:13,732 --> 00:01:17,306 不只是一串寶石,而是一堆寶石! 21 00:01:17,306 --> 00:01:21,609 那麼我們可以怎樣使寶石 22 00:01:21,609 --> 00:01:24,806 佈滿整個畫面? 23 00:01:24,806 --> 00:01:30,639 我們可以由重複 for 迴圈開始,複製、貼上 24 00:01:30,639 --> 00:01:34,565 然後每次都更改 y 25 00:01:34,565 --> 00:01:37,688 我們會把它改成 60,然後 90 26 00:01:37,688 --> 00:01:42,308 現在我們有三行寶石了。酷! 27 00:01:42,308 --> 00:01:45,495 但……這顯得有點悶,因為我做的 28 00:01:45,495 --> 00:01:49,193 只是複製、貼上和更改 y 29 00:01:49,193 --> 00:01:52,859 我們以往一般當我們察覺寫了一個像這個的編碼時 30 00:01:52,859 --> 00:01:57,025 我們會說︰哦,或許我們只需要一個迴圈罷 31 00:01:57,025 --> 00:01:58,607 但我們已經在用一個迴圈 32 00:01:58,607 --> 00:02:03,854 有什麼辦法避免重複的複製貼上呢? 33 00:02:03,854 --> 00:02:09,518 辦法就是我們所謂的嵌入式For迴圈 34 00:02:09,518 --> 00:02:12,132 我們要弄一個外迴圈 35 00:02:12,132 --> 00:02:14,851 這個迴圈就是當我們來到螢幕下方時需要注意的東西 36 00:02:14,851 --> 00:02:19,234 然後我們內迴圈便會繼續執行它目前的指令 37 00:02:19,234 --> 00:02:21,977 從左至右走 38 00:02:21,977 --> 00:02:24,006 讓我告訴你這是什麼一回事 39 00:02:24,006 --> 00:02:29,851 因此for-我們這次使用一個不同的變數,名叫 j,因為我們已使用 i 40 00:02:29,851 --> 00:02:37,274 所以 for (定義新函數 j 等於 0; j 少於 13; j++) 41 00:02:37,274 --> 00:02:41,999 好,這個就會成為我們的外迴圈,會執行上至下的指令 42 00:02:41,999 --> 00:02:48,237 接下來我們把其中一個之前的 for 迴圈放進裏面 43 00:02:48,237 --> 00:02:53,274 更正一下縮排,刪除原來的編碼,好了! 44 00:02:53,274 --> 00:02:59,109 現在我們要做的是把它們疊起來 45 00:02:59,109 --> 00:03:01,969 那就是要改 y,是吧? 46 00:03:01,969 --> 00:03:04,309 我們剛才在複製貼上時已經更改了 47 00:03:04,309 --> 00:03:06,108 所以 Y 一直是 90 48 00:03:06,108 --> 00:03:09,440 我們想要 y 在每一行都不同 49 00:03:09,440 --> 00:03:16,188 就如 x 取決於 i 一樣,我們要讓 y 也因 j 而改變 50 00:03:16,188 --> 00:03:24,663 我們可以把這個改為 j 乘 30 51 00:03:24,663 --> 00:03:29,934 好!好!很多寶石!好極! 52 00:03:29,934 --> 00:03:31,776 那這又做了什麼 53 00:03:31,776 --> 00:03:38,340 外迴圈弄了這個變數 j,把 j 增加至 13 54 00:03:38,340 --> 00:03:44,340 每次執行外迴圈命令時,它也會執行內迴圈命令 55 00:03:44,340 --> 00:03:48,673 內迴圈創造了變數 i,而 i 會增加到 12 56 00:03:48,673 --> 00:03:55,358 每次內迴圈執行命令時,就會畫一個在 x 和 y 軸上的圖像, x 和 y 是基於終止 i 和 j 57 00:03:55,358 --> 00:03:59,607 因此 i 比 j 更常改變 58 00:03:59,607 --> 00:04:05,238 要更明白這個東西,不妨來把 i 和 j 的值顯示出來 59 00:04:05,238 --> 00:04:09,277 我會在影像前後加上 // 60 00:04:09,277 --> 00:04:12,027 然後設定一個填滿的顏色 61 00:04:12,027 --> 00:04:16,796 我會用一個文字控制器去顯示 j 的值,輸入 j 62 00:04:16,796 --> 00:04:22,025 然後我會把它放到這個適當的地方。好 63 00:04:22,025 --> 00:04:26,009 我們可以看到 j 是由 0 到 12 64 00:04:26,009 --> 00:04:32,019 這基本上就是我們一排排寶石的位置 65 00:04:32,019 --> 00:04:35,684 我們會把 i 顯示出來,看看它如何變動 66 00:04:35,684 --> 00:04:43,066 給 i 不同的顏色 67 00:04:43,066 --> 00:04:46,475 我們會把 i 放到某處 68 00:04:46,475 --> 00:04:50,271 我們更改 it’s x 使它會在畫面上橫跨螢幕 69 00:04:50,271 --> 00:04:54,688 我們也給 y 更改 70 00:04:54,688 --> 00:04:59,561 現在我們看到 i 是由 0 到 11 71 00:04:59,561 --> 00:05:04,686 而 i,正如之前所說,變得更頻密 72 00:05:04,686 --> 00:05:08,778 這一行的編碼比這一行編碼執行得更多 73 00:05:08,778 --> 00:05:13,855 因為當這個內迴圈執行時,這一行便會執行 74 00:05:13,855 --> 00:05:19,527 而這一行只會在外迴圈執行時執行 75 00:05:19,527 --> 00:05:22,140 希望 i 和 j 的形象化 76 00:05:22,140 --> 00:05:26,973 可以使你明白這些嵌入式For迴圈究竟發生了什麼事 77 00:05:26,973 --> 00:05:30,475 現在回到我們的寶石那裏,它們是很酷的東西啊! 78 00:05:30,475 --> 00:05:34,066 利用嵌入式For迴圈,你們可以做到很多事情 79 00:05:34,066 --> 00:05:37,232 如果你想一想世界上所有東西都看似 80 00:05:37,232 --> 00:05:39,599 平面網格、西洋象棋格、網格 81 00:05:39,599 --> 00:05:44,564 星條旗上的星星、酷的圖案和背景圖畫 82 00:05:44,564 --> 00:05:47,462 要是開始你的想像,就不如玩一下這個編碼程式 83 00:05:47,462 --> 00:05:49,806 就嘗試改動影像 84 00:05:49,806 --> 00:05:53,796 我會由改成心型開始 85 00:05:53,796 --> 00:05:57,796 讓你知道我有多麼喜愛嵌入式For迴圈!喔~~