close

剛剛第1章一句話就結束了?對! 因為這句話非常非常重要,值得一句話來寫一章。

 

如果你依然不懂第一章那句話的意思,從這章開始就會懂了。

 

我們開始正式進入程式中最基礎的語法章節「變數」 吧。

 

 

什麼是變數 ?知道這句話的定義根本不重要,了解用法後,再來感受變數是什麼比較實際

 

例如:有一個變數叫做 a,而我把 數字 1 放入 a 裡面,我們要這樣寫:

 

a = 1

 

此時,a 裡面裝著 1 這個數字

 

呃…這明明是 a 等於 1 啊?哈,請不要把程式語法跟以前學過的數學搞混了,這裡的 = 並不是數學的等於,而是把「右邊的東西裝(指定)到左邊裡面」

 

那如果我之後再給 a 變數指定 2 , 會怎麼樣?例如:

 

a = 1

a = 2

 

因為程式語法是由上往下執行,第一行是 a = 1,所以一開始 a 裝的會是 1,但繼續往下執行到第二行再指定一次 a = 2 時,原本 a 的裡面的 1 就會被 2 蓋掉,所以最後 a 裝的會是 2

 

知道為什麼叫變數了嗎?因為 a 裡面的值可以被改變,而不是固定裝一個值

 

再以 a = 1 做舉例 :

 

a 裝的是 1 ,而 1 這種值在程式裡面稱為「整數」,也就是數字的一種。

 

整數大家應該都知道吧,就是1、2、3…或 100、200、300、999、100000 等等…

 

所以剛剛 a = 1 更明確的就是說:把整數 1 ,裝到 a 這個變數裡,也就是目前 a 裡面裝的是「整數」的值。

 

變數裡只能裝整數的值嗎?不,他可以裝 「字元」、「字串」、「整數」、「浮點數」…這些種類的值。例如下面有4個變數分別為 a、b、c、d,依序裝「字元」「字串」「整數」「浮點數」這些值:

 

a = '你'

b = "你好嗎"

c = 100

d = 100.5

 

「字元」的值:是「一個字」,而且要用「單引號 ' 」括起來

「字串」的值:是「一個字(含)以上」,而且要用「雙引號 "」括起來

「整數」的值:沒有小數點的數字

「浮點數」的值:有小數點的數字

 

那如果我這樣寫呢?

 

a = "1"

 

 

1是整數,但又被用雙引號括起來,所以 a 現在是裝著整數還是字串呢?答:只要是用 " "雙引號括起來的都是字串,無論你原本是什麼樣的值

 

為什麼要分這些不同型態的值?答:目前不需要知道這種細節,之後章節看完時候,可能就會理解了,目前只要先知道「數變可以裝不同型態的值」就好了。

 

再繼續往下看:

 

a = 1

b = 2

a = b

 

呃…第一行 a 裝 1,第二行 b 裝 2,我可以理解,但第三行是啥意思,把 b 數變 裝到 a 數變?

 

正確來講,程式執行到第三行就是:把 b 裡面的 2 複製出來,再把 2 裝到 a 裡面,就這麼簡單 understand ?? ^^

 

此時 a 不再是 1 了,而是 2

而 b 一樣是 2,因為 b 的內容是複製給 a ,並不是取出來給 a

 

到這裡,有體驗到程式是「由上往下」執行了嗎?也就是程式會依你的寫順序一行一行執行,不會亂跳執行,例如你寫了下面的程式:

 

a = 1

a = 2

a = 3

 

程式一定是由第一行執行依序執行到最後一行,所以 a 最後的內容會是 3

 

另外,前面我們的變數都簡單的命名為 a 只是為了讓講解畫面簡潔清楚,當然變數名稱可以自由命名,例如:aaa、bbb、abc、good111、studentName等等,不過變數最好還是以想要儲存什麼資料來命名比較好,也比較知道這個變數是用來儲什麼值,例如你想存年齡的資料時,就可以把變數命名成 age,例如:

 

age = 1

 

變數的命名方式也有一些規則,大部分的規格則是:

 

1.不能以數字開頭

2.不能空格

3.不用使用關鍵字(也就是程式語言專用於語法或其它的特定英文單字)

 

例如下面的變數命名:

 

8aaa

123abc

ab c

while

true

HowAre_you

 

8aaa 是數字開頭,不允許。

123abc 也是數字開頭,不允許。

ab c 中間有空格,不允許。

while 是程式語言特有的鍵關字,不允許。

true 是程式語言特有的鍵關字,不允許。

HowAre_you 命名雖然看起來怪怪的,但沒有違反變數命名規定,是允許的。

 

其實有一種變數的命名方法常常被使用,因為這種命名方式可以一眼看出這個變數是用來做什麼的,就是「駝峰式命名法」,例如當你要用變數儲存姓名的時候,你可能會使用first name這兩個英文單字合併來替變數命名:

 

firstname = “Tom”

 

但是fristname如果不仔細看,很難一眼看出這個變數什麼意思。那如果把name開頭的n改成大寫呢?例:

 

firstName = “Tom”

 

是不是很明顯可看出其實是兩個單字組成的呢?這就是駝峰式命名法,因為單字間的第一個字母都大寫,就像有駱駝的駝峰一樣有上下起伏。但如果你不想使用這種命名法,你也可以使用底線也是不錯的選擇,例如:first_name。我們最後再來隨意舉幾個用駝峰式命名法的變數命名方式:

 

userLastName

skyColor

sendAddress

folderPath

 

到這裡,其實變數的語法已經介紹完畢囉^^。

 

重點補充:大部分的程式語法是不允許下面的情況。

 

a = 1

a = "你好嗎"

 

第一行 a = 1 ,a  變數本來是裝「整數」型態的值,但到了第二行 a = "你好嗎",a 變數卻變成要換裝「字串」型態的值,這樣是不允許的,程式會出錯無法執行。

 

因為當 a = 1 時,a 這個變數空間已經被塑造可以裝「整數型態的空間」了,執行到第二行 a = "你好嗎",硬是要把字串型態的值放到整數型態空間裡面去,而可能造成出錯。就像是你硬要把籃球塞到高爾夫球的洞裡一樣。所以 a 一開始一但裝了某型態資料後,之後也只能指定同類型的型態資料了

 

當然不只是字串型態的值裝到原本是裝整數型態的變數可能會出錯,只要是兩個不同型態的互裝,就會出錯,例如浮點數的值裝到原本是裝整數型態的變數等等。


 

最後,事實上,有些程式語言在「第一次使用變數」前要先宣告他是變數,什麼意思呢?例如:

 

var a

a = 1

 

第一行用 var 這個關鍵子宣告 a 為變數,第二行之後才能使用 a 開始裝(指定)值。

 

當然你也可以在宣告同時指定值給 a 變數,用一行就可以「宣告」+「指定」給變數值,真是一舉兩得啊^^,例如:

 

var a = 1

 

但有些語言在宣告變數的時候除了加 var 這個關鍵字,還要加上即將要裝在變裡的 「資料型別」,先就是我們上面所講的字元、字串、整數等等的型別,例如 Swift語言要宣告一個要「儲存  整數型態資料的變數」:

 

var a : Int

a = 1

 

也就是宣告變數後,再加上一個「:」+ 這個變數即將要裝的「資料型別」名稱,而 Int 就是整數(Integer)的意思。也就是 a 變數 之後只允許放整數資料型別的值,例如第二行的 a = 1 ,放其它型別的值則會出錯。

 

有些語言宣告變數時,不加var,而是直接用「資料型別」名稱來宣告,例如 Java:

 

int a

a = 1

 

上面一樣是宣告一個要儲存  整數型態資料 的變數。

 

剛剛舉例的這些語言,只是變數使用之前要先宣告而已,但變數的使用方式都一樣,所以不要覺得好像很難,等你開始學某一種程式語言的時候,再注意一下使用變數時需不需要先宣告,如果要宣告,只要知道怎麼宣告就好了。

 

講到這裡,也許你開始會有個疑問:那實際寫程式的時候,我所學的這些語法要寫在哪裡,然後怎麼實際在電腦上執行?我記得執行程式都是跳出視窗啊?難道執行程式的時候就會自動產生視窗然後顯示我要顯示的結果?等等的問題。在此,我們先把這些問題「通通放下」,先「好好的把基本語法學好」,你想知道的這些問題都不會比語法重要,而這些問題網路上都可以查得到,照做也可以做出來,而本書的最後幾章節也會針對這幾個問題來做介紹,所以先不要想太多,一章一章踏實地把基礎語法看下去就對了。

 

如果您覺得我講的很不錯,可以參考本電子書點此連結

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Andy 的頭像
    Andy

    PetersonC's 部落格

    Andy 發表在 痞客邦 留言(0) 人氣()