0:00:01.083,0:00:03.846 我的好朋友溫斯頓會在這協助我們完成這程式 0:00:03.846,0:00:06.424 我知道他看起來已經好的不可思議 0:00:06.424,0:00:08.911 但我想稍微改一下他眼睛的大小 0:00:08.911,0:00:10.784 這是我畫他眼睛的位置 0:00:10.784,0:00:13.343 你可以看見我們設定填色接著畫兩個橢圓形 0:00:13.343,0:00:16.833 若我想縮小這橢圓形,我可以改變寬度 0:00:16.833,0:00:18.011 然後我也希望它是個圓形 0:00:18.011,0:00:20.284 所以我要把高度改成和寬度相同的值 0:00:20.284,0:00:22.955 我希望兩隻眼睛的大小一樣 0:00:22.955,0:00:25.381 所以得修改這隻眼睛的寬度和高度 0:00:25.381,0:00:28.497 糟糕,現在眼睛有一點過小,[br]所以我必須把它們改回原來大小 0:00:28.707,0:00:30.839 如果可以只改一個值就同時改變眼睛大小 0:00:30.839,0:00:32.656 那豈不是太棒了? 0:00:32.877,0:00:36.191 而這就是變數可以幫得上忙的地方 0:00:37.232,0:00:40.848 變數就像一個名字或為別的東西預留位置 0:00:41.303,0:00:44.523 我喜歡把變數想成一個有名字的大桶子 0:00:44.566,0:00:46.295 你可以把任何你想的東西放進桶子裡 0:00:46.295,0:00:47.588 但名字保持不變 0:00:47.747,0:00:51.937 我們稱桶子裡的東西為變數的值 0:00:53.702,0:00:55.745 讓我們開始真正地來寫一個變數 0:00:55.745,0:00:57.564 就從這裡開始 0:00:57.564,0:01:00.333 你所要做的就是寫入var,代表變數 0:01:00.333,0:01:02.477 空格,接著是變數的名字 0:01:02.477,0:01:04.465 它應該描述那變數所儲存的數值 0:01:04.465,0:01:06.007 所以我要把這一個叫做eyeSize,眼睛大小 0:01:06.007,0:01:07.997 你可以隨意給它任何你想要的名字 0:01:07.997,0:01:10.043 但在字與字之間不可以有任何空格 0:01:10.043,0:01:11.974 當然,別忘了寫分號 0:01:12.248,0:01:14.447 現在我已經寫了一個叫做eyeSize的變數 0:01:14.447,0:01:16.936 因為它將儲存溫斯頓眼睛的大小 0:01:16.936,0:01:19.511 但到目前為止,這個變數還沒有值 0:01:19.846,0:01:22.642 要給它一個值,我們只要寫入eyeSize 0:01:22.642,0:01:27.186 然後一個等號,接著20,分號 0:01:27.611,0:01:29.370 好了,看到那等號嗎? 0:01:29.370,0:01:31.763 忘了你的數學老師教你的那些 0:01:31.763,0:01:35.086 那個等號不是指「相等」,而是「指派」 0:01:35.391,0:01:41.264 這表示我們將數值20賦予變數eyeSize 0:01:42.014,0:01:43.716 換句話說,我們要把數字20 0:01:43.716,0:01:45.576 放進叫做eyeSize的桶子裡 0:01:45.728,0:01:48.438 記得在數學課中,你如何描述像是 0:01:48.438,0:01:51.818 x = 3,而3 = x嗎? 0:01:51.818,0:01:54.457 且它們全都表示相同的意思[br]因為它們相等? 0:01:54.457,0:01:56.377 但,這裡你不可以這麼寫 0:01:56.377,0:01:58.443 在等號左邊的東西 0:01:58.443,0:01:59.985 永遠是變數 0:01:59.985,0:02:03.397 而在等號右邊的東西永遠是值 0:02:03.397,0:02:05.331 那個你賦予變數的值 0:02:05.501,0:02:08.080 一個好方法幫助你記住哪邊該放什麼 0:02:08.080,0:02:09.980 是當你寫程式的同時大聲唸給自己聽 0:02:09.980,0:02:11.491 就像每個厲害的程式設計師所做的 0:02:11.491,0:02:15.290 當你敲一個等號,別說「等於」,改說「得到」 0:02:15.290,0:02:18.587 於是就變成,eyeSize得到20 0:02:19.619,0:02:22.049 而現在,無論何時我在我的程式中使用eyeSize 0:02:22.049,0:02:24.780 電腦將會像「噢對,那是一個變數」 0:02:24.780,0:02:27.871 「我知道它真正代表的是這個數值20」 0:02:28.312,0:02:31.131 看看這個-我只要複製它 0:02:31.419,0:02:34.405 然後將這四個數字改成 0:02:34.785,0:02:37.058 我的新變數eyeSize 0:02:38.255,0:02:39.614 你瞧! 0:02:39.614,0:02:43.920 溫斯頓的雙眼現在多麼渾圓而且大小一樣 0:02:43.920,0:02:46.591 而若我想改變雙眼的值 0:02:46.591,0:02:47.730 或雙眼的大小 0:02:47.730,0:02:50.547 我就可以只改變這一個變數的值 0:02:51.002,0:02:53.045 真是太神奇了! 0:02:54.309,0:02:55.667 最後幾點說明 0:02:55.667,0:02:58.512 至今我們寫了一個新變數叫做eyeSize 0:02:58.512,0:03:01.037 且這裡我們給它一個數值33 0:03:01.037,0:03:02.855 實際上我們只需一個步驟就可以全部完成 0:03:02.855,0:03:05.927 第一步,寫入var eyeSize 0:03:05.927,0:03:08.717 第二步,得到33 0:03:08.717,0:03:10.825 若我刪除這兩行 0:03:10.825,0:03:12.626 你可以看到一切都還是正常運作 0:03:13.449,0:03:16.761 此外,記住電腦從上到下依序讀取你的程式碼 0:03:16.761,0:03:19.188 所以它知道在下面的eyeSize代表甚麼 0:03:19.188,0:03:21.668 是因為我們已經在上面這裡定義它 0:03:21.668,0:03:24.309 如果相反地我把它放在下方這裡 0:03:25.021,0:03:28.446 那麼一旦我們執行到這行程式碼,電腦會 0:03:28.446,0:03:30.989 「eyeSize到底是什麼?[br]我不知道它是啥」 0:03:30.989,0:03:34.002 事實上,這裡我們收到錯誤訊息[br]說eyeSize尚未被定義 0:03:34.002,0:03:35.570 也許你會想說 0:03:35.570,0:03:37.481 「有啊,我有定義它啊,就在這裡!」 0:03:37.481,0:03:39.584 但電腦沒這麼聰明,它不知道 0:03:40.406,0:03:42.636 所以讓我們把它移回最上方 0:03:44.029,0:03:45.549 而且你必須時時確認 0:03:45.549,0:03:48.259 在你使用變數之前先定義它 0:03:49.137,0:03:51.911 現在你已經了解變數了!耶!