Return to Video

While迴圈介紹(視頻版)

  • 0:01 - 0:05
    讓我們來談談迴圈
    這兒我有一個while迴圈,及幾行程式碼
  • 0:05 - 0:08
    我可以將這個訊息在屏幕上一路往下寫
  • 0:08 - 0:11
    若我像這樣更改訊息,使它更完善
  • 0:11 - 0:12
    它們全部也會跟著改變
  • 0:12 - 0:16
    這是如何做到的?
    我們可以重新溫習一下這程式碼
  • 0:16 - 0:21
    但首先讓我們先退一步,
    思考一下如何只用我們知道的
  • 0:21 - 0:23
    而不用迴圈來編寫這個程式
  • 0:23 - 0:27
    而要做到這點,我們就只能
    一遍又一遍地寫一大串文字對嗎?
  • 0:27 - 0:31
    我們會說輸入文字、訊息,我要將它放在首位
  • 0:31 - 0:37
    現在只要這樣一直重複夠多次,
    直到最後到達屏幕底部即可
  • 0:37 - 0:39
    而這要花好大一番功夫,是吧?
  • 0:39 - 0:43
    因為底部真的好遠,而更糟的是
  • 0:43 - 0:48
    若你之後告訴我說,這其實不是70,
    應該更近一點,類似60
  • 0:48 - 0:51
    現在這個也受影響了,因為它也必須小一點
  • 0:51 - 0:55
    並一路影響到我們更多呼叫輸入文字的程式
  • 0:55 - 0:59
    事實上,這樣就要花更多時間才能到達底部
  • 0:59 - 1:03
    這真的很痛苦,幸好有迴圈可以幫助我們
  • 1:03 - 1:05
    從現在起,你只要看到像這樣重複的程式碼
  • 1:05 - 1:08
    你應該第一個想到:「我可以使用迴圈嗎?」
  • 1:08 - 1:11
    迴圈可以讓我們一遍又一遍地重複這段程式碼
  • 1:11 - 1:14
    每次只做一點小改變
  • 1:14 - 1:16
    而這是我們如何用迴圈來改寫這程式碼
  • 1:16 - 1:21
    首先,我們需要鍵入while、括號及大括號
  • 1:21 - 1:24
    我們將會收到這訊息,但這只是因為我們還沒寫完
  • 1:24 - 1:26
    別擔心,當我們完成時它就會消失了
  • 1:26 - 1:31
    每次你寫一個迴圈時,你需要回答三個重要問題
  • 1:31 - 1:33
    它們是:
  • 1:33 - 1:37
    第一:「我想重複的是什麼?」
  • 1:37 - 1:41
    無論我們想重複的為何,它必須放在大括號中
  • 1:41 - 1:46
    這次我們想重複呼叫「輸入文字」,所以就把它放進這裡
  • 1:46 - 1:48
    但這有一點笨不是嗎?
  • 1:48 - 1:52
    因為現在我們將一直重複呼叫完全相同文字輸入
  • 1:52 - 1:55
    而這不是我們真的想要的,我們想要改變某些東西
  • 1:55 - 1:58
    這帶到第二個問題:「每次我想變更的是什麼?」
  • 1:58 - 2:03
    我們想變更的是位置y,對嗎?
    想將它變為60,再來是80
  • 2:03 - 2:08
    於是我們設它為變數y,
    因為它代表的是位置y
  • 2:08 - 2:12
    接著我們在這宣告一個變數,起始為40
  • 2:12 - 2:15
    最後我們只需要去變動y
  • 2:15 - 2:18
    我們可以在下面這裡說「y為y加上20」
  • 2:18 - 2:21
    所以每次y會變得越來越大
  • 2:21 - 2:24
    事實上,這兒我們可以用之前學到的遞增快捷指令
  • 2:24 - 2:27
    我們可以就繼續使用快捷指令
  • 2:27 - 2:31
    太棒了,現在我們只需要回答第三個問題:
  • 2:31 - 2:33
    「我們應該重覆這多久?」
  • 2:33 - 2:37
    雖然我們希望它一遍又一遍,
    但不是真的直到永遠,對吧?
  • 2:37 - 2:39
    若它永遠執行下去,第一,要花很長的時間等待
  • 2:39 - 2:41
    第二,它可能甚至會損壞你的瀏覽器
  • 2:41 - 2:47
    但願不會。我們只想一直重複達到頁面的底部,對嗎?
  • 2:47 - 2:51
    也就是只當y小於400時才執行它
  • 2:51 - 2:53
    所以就把那放進這兒,有了!
  • 2:53 - 2:57
    我們將這訊息一路寫到屏幕底了
  • 2:57 - 2:59
    而且你可以發現這比我們之前的方式簡單多了
  • 2:59 - 3:04
    之前方式花了我們很多時間去寫,但甚至還完成不到四分之一
  • 3:04 - 3:08
    所以我們捨棄那種方式,而有了我們現在的程式
  • 3:08 - 3:11
    現在,讓我們試著進一步了解發生了什麼事情
  • 3:11 - 3:15
    要做到這點,我將輸出每一次的y值,
    我會說「y現在的值是」
  • 3:15 - 3:19
    然後我將跟著y直到訊息結束,於是我們可以盯著它
  • 3:19 - 3:23
    此刻,值每次增加20,而我們可以
  • 3:23 - 3:29
    只靠改變這裡的變數去變更它,
    或你可以把它改成50
  • 3:29 - 3:31
    現在,它們正以50來增加
  • 3:31 - 3:36
    相似地,你可以繼續用其他的值來改變它們
  • 3:36 - 3:41
    且你可以看見那會怎麼影響程式會停在哪裡
  • 3:41 - 3:46
    要理解這一點,你其實可以將它想像成一個if述句
  • 3:46 - 3:49
    在這我們有我們的布林表示式就像你看到的
  • 3:49 - 3:52
    然後,我們只在布林值為真時
  • 3:52 - 3:57
    才執行此敘述的主體,否則就跳到結束
  • 3:57 - 4:00
    但有趣的是在while迴圈,我們其實在程式最後
  • 4:00 - 4:03
    有個祕密的事情在進行著,它說:
  • 4:03 - 4:07
    「回到迴圈的起始點」。這祕密指令意指
  • 4:07 - 4:12
    不像if述句一樣離開程式繼續往下走
  • 4:12 - 4:17
    而是每次執行迴圈本體,我們將再回去確認是否條件依然成立
  • 4:17 - 4:20
    如果成立,我們就會再重複一次
  • 4:20 - 4:24
    而就像你可能已經猜到的,第二次重複時,我們將再次做相同的事情
  • 4:24 - 4:28
    我們會回到起始點,確認y是否依然小於279?
  • 4:28 - 4:32
    如果是,就會再重複一次並繼續確認
  • 4:32 - 4:35
    但如果不是,我們回到開始這裡
  • 4:35 - 4:38
    最後,我們將離開並繼續往下執行其他程式
  • 4:38 - 4:43
    太好了,很快我們將會學到更多有趣的方式來使用迴圈
  • 4:43 - 4:47
    而現在,你已經有了一個很棒的開端
Title:
While迴圈介紹(視頻版)
Description:

這僅為我們互動編碼教學的屏幕擷取,用以使字幕及翻譯更便利。如欲觀看我們的教學請上:https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
04:47

Chinese, Traditional subtitles

Revisions