[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.70,0:00:05.01,Default,,0000,0000,0000,,讓我們來談談迴圈\N這兒我有一個while迴圈,及幾行程式碼 Dialogue: 0,0:00:05.01,0:00:07.74,Default,,0000,0000,0000,,我可以將這個訊息在屏幕上一路往下寫 Dialogue: 0,0:00:07.74,0:00:10.76,Default,,0000,0000,0000,,若我像這樣更改訊息,使它更完善 Dialogue: 0,0:00:10.76,0:00:12.49,Default,,0000,0000,0000,,它們全部也會跟著改變 Dialogue: 0,0:00:12.49,0:00:16.29,Default,,0000,0000,0000,,這是如何做到的?\N我們可以重新溫習一下這程式碼 Dialogue: 0,0:00:16.29,0:00:20.52,Default,,0000,0000,0000,,但首先讓我們先退一步,\N思考一下如何只用我們知道的 Dialogue: 0,0:00:20.52,0:00:22.80,Default,,0000,0000,0000,,而不用迴圈來編寫這個程式 Dialogue: 0,0:00:22.80,0:00:27.02,Default,,0000,0000,0000,,而要做到這點,我們就只能\N一遍又一遍地寫一大串文字對嗎? Dialogue: 0,0:00:27.02,0:00:30.74,Default,,0000,0000,0000,,我們會說輸入文字、訊息,我要將它放在首位 Dialogue: 0,0:00:30.74,0:00:36.69,Default,,0000,0000,0000,,現在只要這樣一直重複夠多次,\N直到最後到達屏幕底部即可 Dialogue: 0,0:00:36.69,0:00:38.95,Default,,0000,0000,0000,,而這要花好大一番功夫,是吧? Dialogue: 0,0:00:38.95,0:00:42.75,Default,,0000,0000,0000,,因為底部真的好遠,而更糟的是 Dialogue: 0,0:00:42.75,0:00:47.99,Default,,0000,0000,0000,,若你之後告訴我說,這其實不是70,\N應該更近一點,類似60 Dialogue: 0,0:00:47.99,0:00:51.29,Default,,0000,0000,0000,,現在這個也受影響了,因為它也必須小一點 Dialogue: 0,0:00:51.29,0:00:55.42,Default,,0000,0000,0000,,並一路影響到我們更多呼叫輸入文字的程式 Dialogue: 0,0:00:55.42,0:00:58.79,Default,,0000,0000,0000,,事實上,這樣就要花更多時間才能到達底部 Dialogue: 0,0:00:58.79,0:01:02.51,Default,,0000,0000,0000,,這真的很痛苦,幸好有迴圈可以幫助我們 Dialogue: 0,0:01:02.51,0:01:05.41,Default,,0000,0000,0000,,從現在起,你只要看到像這樣重複的程式碼 Dialogue: 0,0:01:05.41,0:01:08.01,Default,,0000,0000,0000,,你應該第一個想到:「我可以使用迴圈嗎?」 Dialogue: 0,0:01:08.01,0:01:11.20,Default,,0000,0000,0000,,迴圈可以讓我們一遍又一遍地重複這段程式碼 Dialogue: 0,0:01:11.20,0:01:13.97,Default,,0000,0000,0000,,每次只做一點小改變 Dialogue: 0,0:01:13.97,0:01:16.38,Default,,0000,0000,0000,,而這是我們如何用迴圈來改寫這程式碼 Dialogue: 0,0:01:16.38,0:01:20.77,Default,,0000,0000,0000,,首先,我們需要鍵入while、括號及大括號 Dialogue: 0,0:01:20.77,0:01:23.61,Default,,0000,0000,0000,,我們將會收到這訊息,但這只是因為我們還沒寫完 Dialogue: 0,0:01:23.61,0:01:26.30,Default,,0000,0000,0000,,別擔心,當我們完成時它就會消失了 Dialogue: 0,0:01:26.30,0:01:30.81,Default,,0000,0000,0000,,每次你寫一個迴圈時,你需要回答三個重要問題 Dialogue: 0,0:01:30.82,0:01:33.21,Default,,0000,0000,0000,,它們是: Dialogue: 0,0:01:33.21,0:01:37.37,Default,,0000,0000,0000,,第一:「我想重複的是什麼?」 Dialogue: 0,0:01:37.37,0:01:41.47,Default,,0000,0000,0000,,無論我們想重複的為何,它必須放在大括號中 Dialogue: 0,0:01:41.47,0:01:46.20,Default,,0000,0000,0000,,這次我們想重複呼叫「輸入文字」,所以就把它放進這裡 Dialogue: 0,0:01:46.20,0:01:48.02,Default,,0000,0000,0000,,但這有一點笨不是嗎? Dialogue: 0,0:01:48.02,0:01:51.69,Default,,0000,0000,0000,,因為現在我們將一直重複呼叫完全相同文字輸入 Dialogue: 0,0:01:51.69,0:01:54.78,Default,,0000,0000,0000,,而這不是我們真的想要的,我們想要改變某些東西 Dialogue: 0,0:01:54.78,0:01:58.04,Default,,0000,0000,0000,,這帶到第二個問題:「每次我想變更的是什麼?」 Dialogue: 0,0:01:58.04,0:02:03.04,Default,,0000,0000,0000,,我們想變更的是位置y,對嗎?\N想將它變為60,再來是80 Dialogue: 0,0:02:03.04,0:02:07.97,Default,,0000,0000,0000,,於是我們設它為變數y,\N因為它代表的是位置y Dialogue: 0,0:02:07.97,0:02:12.26,Default,,0000,0000,0000,,接著我們在這宣告一個變數,起始為40 Dialogue: 0,0:02:12.26,0:02:14.74,Default,,0000,0000,0000,,最後我們只需要去變動y Dialogue: 0,0:02:14.74,0:02:18.26,Default,,0000,0000,0000,,我們可以在下面這裡說「y為y加上20」 Dialogue: 0,0:02:18.26,0:02:21.09,Default,,0000,0000,0000,,所以每次y會變得越來越大 Dialogue: 0,0:02:21.09,0:02:24.24,Default,,0000,0000,0000,,事實上,這兒我們可以用之前學到的遞增快捷指令 Dialogue: 0,0:02:24.24,0:02:26.99,Default,,0000,0000,0000,,我們可以就繼續使用快捷指令 Dialogue: 0,0:02:26.99,0:02:30.70,Default,,0000,0000,0000,,太棒了,現在我們只需要回答第三個問題: Dialogue: 0,0:02:30.70,0:02:33.04,Default,,0000,0000,0000,,「我們應該重覆這多久?」 Dialogue: 0,0:02:33.04,0:02:36.75,Default,,0000,0000,0000,,雖然我們希望它一遍又一遍,\N但不是真的直到永遠,對吧? Dialogue: 0,0:02:36.75,0:02:39.42,Default,,0000,0000,0000,,若它永遠執行下去,第一,要花很長的時間等待 Dialogue: 0,0:02:39.42,0:02:41.40,Default,,0000,0000,0000,,第二,它可能甚至會損壞你的瀏覽器 Dialogue: 0,0:02:41.40,0:02:47.34,Default,,0000,0000,0000,,但願不會。我們只想一直重複達到頁面的底部,對嗎? Dialogue: 0,0:02:47.34,0:02:50.77,Default,,0000,0000,0000,,也就是只當y小於400時才執行它 Dialogue: 0,0:02:50.77,0:02:53.37,Default,,0000,0000,0000,,所以就把那放進這兒,有了! Dialogue: 0,0:02:53.37,0:02:56.57,Default,,0000,0000,0000,,我們將這訊息一路寫到屏幕底了 Dialogue: 0,0:02:56.57,0:02:59.47,Default,,0000,0000,0000,,而且你可以發現這比我們之前的方式簡單多了 Dialogue: 0,0:02:59.47,0:03:04.30,Default,,0000,0000,0000,,之前方式花了我們很多時間去寫,但甚至還完成不到四分之一 Dialogue: 0,0:03:04.30,0:03:08.09,Default,,0000,0000,0000,,所以我們捨棄那種方式,而有了我們現在的程式 Dialogue: 0,0:03:08.09,0:03:11.36,Default,,0000,0000,0000,,現在,讓我們試著進一步了解發生了什麼事情 Dialogue: 0,0:03:11.36,0:03:15.23,Default,,0000,0000,0000,,要做到這點,我將輸出每一次的y值,\N我會說「y現在的值是」 Dialogue: 0,0:03:15.23,0:03:19.41,Default,,0000,0000,0000,,然後我將跟著y直到訊息結束,於是我們可以盯著它 Dialogue: 0,0:03:19.41,0:03:23.34,Default,,0000,0000,0000,,此刻,值每次增加20,而我們可以 Dialogue: 0,0:03:23.34,0:03:29.34,Default,,0000,0000,0000,,只靠改變這裡的變數去變更它,\N或你可以把它改成50 Dialogue: 0,0:03:29.34,0:03:31.43,Default,,0000,0000,0000,,現在,它們正以50來增加 Dialogue: 0,0:03:31.43,0:03:35.58,Default,,0000,0000,0000,,相似地,你可以繼續用其他的值來改變它們 Dialogue: 0,0:03:35.58,0:03:40.83,Default,,0000,0000,0000,,且你可以看見那會怎麼影響程式會停在哪裡 Dialogue: 0,0:03:40.83,0:03:45.75,Default,,0000,0000,0000,,要理解這一點,你其實可以將它想像成一個if述句 Dialogue: 0,0:03:45.75,0:03:48.96,Default,,0000,0000,0000,,在這我們有我們的布林表示式就像你看到的 Dialogue: 0,0:03:48.96,0:03:52.01,Default,,0000,0000,0000,,然後,我們只在布林值為真時 Dialogue: 0,0:03:52.01,0:03:56.74,Default,,0000,0000,0000,,才執行此敘述的主體,否則就跳到結束 Dialogue: 0,0:03:56.74,0:04:00.23,Default,,0000,0000,0000,,但有趣的是在while迴圈,我們其實在程式最後 Dialogue: 0,0:04:00.23,0:04:02.72,Default,,0000,0000,0000,,有個祕密的事情在進行著,它說: Dialogue: 0,0:04:02.72,0:04:07.20,Default,,0000,0000,0000,,「回到迴圈的起始點」。這祕密指令意指 Dialogue: 0,0:04:07.20,0:04:12.21,Default,,0000,0000,0000,,不像if述句一樣離開程式繼續往下走 Dialogue: 0,0:04:12.21,0:04:17.46,Default,,0000,0000,0000,,而是每次執行迴圈本體,我們將再回去確認是否條件依然成立 Dialogue: 0,0:04:17.46,0:04:20.31,Default,,0000,0000,0000,,如果成立,我們就會再重複一次 Dialogue: 0,0:04:20.31,0:04:24.28,Default,,0000,0000,0000,,而就像你可能已經猜到的,第二次重複時,我們將再次做相同的事情 Dialogue: 0,0:04:24.28,0:04:28.50,Default,,0000,0000,0000,,我們會回到起始點,確認y是否依然小於279? Dialogue: 0,0:04:28.50,0:04:31.56,Default,,0000,0000,0000,,如果是,就會再重複一次並繼續確認 Dialogue: 0,0:04:31.56,0:04:34.59,Default,,0000,0000,0000,,但如果不是,我們回到開始這裡 Dialogue: 0,0:04:34.59,0:04:38.48,Default,,0000,0000,0000,,最後,我們將離開並繼續往下執行其他程式 Dialogue: 0,0:04:38.48,0:04:42.70,Default,,0000,0000,0000,,太好了,很快我們將會學到更多有趣的方式來使用迴圈 Dialogue: 0,0:04:42.70,0:04:46.70,Default,,0000,0000,0000,,而現在,你已經有了一個很棒的開端