1 00:00:00,700 --> 00:00:05,010 讓我們來談談迴圈 這兒我有一個while迴圈,及幾行程式碼 2 00:00:05,010 --> 00:00:07,740 我可以將這個訊息在屏幕上一路往下寫 3 00:00:07,740 --> 00:00:10,765 若我像這樣更改訊息,使它更完善 4 00:00:10,765 --> 00:00:12,486 它們全部也會跟著改變 5 00:00:12,486 --> 00:00:16,293 這是如何做到的? 我們可以重新溫習一下這程式碼 6 00:00:16,293 --> 00:00:20,522 但首先讓我們先退一步, 思考一下如何只用我們知道的 7 00:00:20,522 --> 00:00:22,801 而不用迴圈來編寫這個程式 8 00:00:22,801 --> 00:00:27,021 而要做到這點,我們就只能 一遍又一遍地寫一大串文字對嗎? 9 00:00:27,021 --> 00:00:30,740 我們會說輸入文字、訊息,我要將它放在首位 10 00:00:30,740 --> 00:00:36,686 現在只要這樣一直重複夠多次, 直到最後到達屏幕底部即可 11 00:00:36,686 --> 00:00:38,949 而這要花好大一番功夫,是吧? 12 00:00:38,949 --> 00:00:42,753 因為底部真的好遠,而更糟的是 13 00:00:42,753 --> 00:00:47,988 若你之後告訴我說,這其實不是70, 應該更近一點,類似60 14 00:00:47,988 --> 00:00:51,289 現在這個也受影響了,因為它也必須小一點 15 00:00:51,289 --> 00:00:55,416 並一路影響到我們更多呼叫輸入文字的程式 16 00:00:55,416 --> 00:00:58,791 事實上,這樣就要花更多時間才能到達底部 17 00:00:58,791 --> 00:01:02,506 這真的很痛苦,幸好有迴圈可以幫助我們 18 00:01:02,506 --> 00:01:05,410 從現在起,你只要看到像這樣重複的程式碼 19 00:01:05,410 --> 00:01:08,010 你應該第一個想到:「我可以使用迴圈嗎?」 20 00:01:08,010 --> 00:01:11,197 迴圈可以讓我們一遍又一遍地重複這段程式碼 21 00:01:11,197 --> 00:01:13,971 每次只做一點小改變 22 00:01:13,971 --> 00:01:16,381 而這是我們如何用迴圈來改寫這程式碼 23 00:01:16,381 --> 00:01:20,768 首先,我們需要鍵入while、括號及大括號 24 00:01:20,768 --> 00:01:23,609 我們將會收到這訊息,但這只是因為我們還沒寫完 25 00:01:23,609 --> 00:01:26,301 別擔心,當我們完成時它就會消失了 26 00:01:26,301 --> 00:01:30,810 每次你寫一個迴圈時,你需要回答三個重要問題 27 00:01:30,825 --> 00:01:33,210 它們是: 28 00:01:33,210 --> 00:01:37,371 第一:「我想重複的是什麼?」 29 00:01:37,371 --> 00:01:41,466 無論我們想重複的為何,它必須放在大括號中 30 00:01:41,466 --> 00:01:46,198 這次我們想重複呼叫「輸入文字」,所以就把它放進這裡 31 00:01:46,198 --> 00:01:48,021 但這有一點笨不是嗎? 32 00:01:48,021 --> 00:01:51,691 因為現在我們將一直重複呼叫完全相同文字輸入 33 00:01:51,691 --> 00:01:54,777 而這不是我們真的想要的,我們想要改變某些東西 34 00:01:54,777 --> 00:01:58,040 這帶到第二個問題:「每次我想變更的是什麼?」 35 00:01:58,040 --> 00:02:03,043 我們想變更的是位置y,對嗎? 想將它變為60,再來是80 36 00:02:03,043 --> 00:02:07,973 於是我們設它為變數y, 因為它代表的是位置y 37 00:02:07,973 --> 00:02:12,256 接著我們在這宣告一個變數,起始為40 38 00:02:12,256 --> 00:02:14,736 最後我們只需要去變動y 39 00:02:14,736 --> 00:02:18,255 我們可以在下面這裡說「y為y加上20」 40 00:02:18,255 --> 00:02:21,088 所以每次y會變得越來越大 41 00:02:21,088 --> 00:02:24,235 事實上,這兒我們可以用之前學到的遞增快捷指令 42 00:02:24,235 --> 00:02:26,992 我們可以就繼續使用快捷指令 43 00:02:26,992 --> 00:02:30,702 太棒了,現在我們只需要回答第三個問題: 44 00:02:30,702 --> 00:02:33,035 「我們應該重覆這多久?」 45 00:02:33,035 --> 00:02:36,751 雖然我們希望它一遍又一遍, 但不是真的直到永遠,對吧? 46 00:02:36,751 --> 00:02:39,422 若它永遠執行下去,第一,要花很長的時間等待 47 00:02:39,422 --> 00:02:41,402 第二,它可能甚至會損壞你的瀏覽器 48 00:02:41,402 --> 00:02:47,341 但願不會。我們只想一直重複達到頁面的底部,對嗎? 49 00:02:47,341 --> 00:02:50,771 也就是只當y小於400時才執行它 50 00:02:50,771 --> 00:02:53,369 所以就把那放進這兒,有了! 51 00:02:53,369 --> 00:02:56,566 我們將這訊息一路寫到屏幕底了 52 00:02:56,566 --> 00:02:59,470 而且你可以發現這比我們之前的方式簡單多了 53 00:02:59,470 --> 00:03:04,295 之前方式花了我們很多時間去寫,但甚至還完成不到四分之一 54 00:03:04,295 --> 00:03:08,090 所以我們捨棄那種方式,而有了我們現在的程式 55 00:03:08,090 --> 00:03:11,361 現在,讓我們試著進一步了解發生了什麼事情 56 00:03:11,361 --> 00:03:15,234 要做到這點,我將輸出每一次的y值, 我會說「y現在的值是」 57 00:03:15,234 --> 00:03:19,410 然後我將跟著y直到訊息結束,於是我們可以盯著它 58 00:03:19,410 --> 00:03:23,343 此刻,值每次增加20,而我們可以 59 00:03:23,343 --> 00:03:29,337 只靠改變這裡的變數去變更它, 或你可以把它改成50 60 00:03:29,337 --> 00:03:31,426 現在,它們正以50來增加 61 00:03:31,426 --> 00:03:35,578 相似地,你可以繼續用其他的值來改變它們 62 00:03:35,578 --> 00:03:40,831 且你可以看見那會怎麼影響程式會停在哪裡 63 00:03:40,831 --> 00:03:45,747 要理解這一點,你其實可以將它想像成一個if述句 64 00:03:45,747 --> 00:03:48,962 在這我們有我們的布林表示式就像你看到的 65 00:03:48,962 --> 00:03:52,009 然後,我們只在布林值為真時 66 00:03:52,009 --> 00:03:56,739 才執行此敘述的主體,否則就跳到結束 67 00:03:56,739 --> 00:04:00,233 但有趣的是在while迴圈,我們其實在程式最後 68 00:04:00,233 --> 00:04:02,724 有個祕密的事情在進行著,它說: 69 00:04:02,724 --> 00:04:07,202 「回到迴圈的起始點」。這祕密指令意指 70 00:04:07,202 --> 00:04:12,211 不像if述句一樣離開程式繼續往下走 71 00:04:12,211 --> 00:04:17,462 而是每次執行迴圈本體,我們將再回去確認是否條件依然成立 72 00:04:17,462 --> 00:04:20,314 如果成立,我們就會再重複一次 73 00:04:20,314 --> 00:04:24,278 而就像你可能已經猜到的,第二次重複時,我們將再次做相同的事情 74 00:04:24,278 --> 00:04:28,496 我們會回到起始點,確認y是否依然小於279? 75 00:04:28,496 --> 00:04:31,565 如果是,就會再重複一次並繼續確認 76 00:04:31,565 --> 00:04:34,591 但如果不是,我們回到開始這裡 77 00:04:34,591 --> 00:04:38,478 最後,我們將離開並繼續往下執行其他程式 78 00:04:38,478 --> 00:04:42,703 太好了,很快我們將會學到更多有趣的方式來使用迴圈 79 00:04:42,703 --> 00:04:46,703 而現在,你已經有了一個很棒的開端