iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
1
Modern Web

菜鳥後端工程師的第一門課系列 第 3

[Day3] 程式基本邏輯(1) - 變數與資料型態

程式基本邏輯(1) - 變數與資料型態

鐵人賽第三天,我們會從最基本的程式邏輯開始講起,
這些邏輯是貫穿所有程式語言,是所有計算機運行的基礎。

客官們注意!!
此系列示範程式碼語言皆已 ruby 為主,只有資料型態的部分會以 java 語言撰寫,
未來如有使用其他語言情形,會再多說明。

變數

首先要提到的,是『變數』的概念。
在電腦的世界中,有無數的資料需要被處理、運算,
例如計算機,計算機在每次使用者點擊 + 、 = 等等運算符號時,
螢幕上的數字,都會被『暫時儲存』起來,
而儲存的地方,就是『變數』。
例如,現在電腦要運算我的 BMI 值(掩面 ),
他需要有地方儲存我的『體重』和『身高』,
那他就會在電子世界,建立兩個空間,一個命名『weight』,一個命名『height』,
並且在這個空間裡面放入兩個數字,65 和 175。
寫成程式呢,就會長得像這樣:

weight = 65
height = 175

那電腦在計算的時候,就可以從這兩個儲存空間取出資料,
並做運算,還可以把算完的結果新存在『bmi』這個新的空間

bmi = 65 / (175 / 100) * (175 / 100)

因此在撰寫程式時,我們需要先思考,
我們有哪些不同類型的資料,要怎麼儲存並命名那些空間。

資料型態

再來,在儲存這些資料的時候,
我們的電腦,其實會針對被儲存的資料有一些特定的限制,
電腦會設定這個空間,只能儲存什麼『類別』的資料,
目前程式語言最常用的類別可以分為以下四種,
左邊是類別名稱,右邊是該類別的範例。

  1. 字串 —> “頑童MJ116”
  2. 整數 —> 9487
  3. 浮點數 —> 9487.555
  4. 布林值 —> True

字串 ( String )

字串類別,是指該儲存空間只能儲存『文字』,
例如上面舉例的 “頑童MJ116”,寫成程式碼:

text = "頑童MJ116"

就是指,『text』這個儲存空間裡面,儲存了『頑童MJ116』這個詞。
而最一開始有提到,電腦會限定該儲存空間的型態名稱,
我們來看看實際可以運行的程式碼會長什麼樣子:

String text = "頑童MJ116"

這邊就會看到,電腦會設定『text』這個是『字串』類別的『變數』,
而且裡面儲存了 “頑童MJ116” 這個資料。
要特別注意的是,那段文字旁邊需要加上雙引號『””』,才會被判斷為字串喔!
字串公定的名稱通常就是『String』,但會根據程式語言的不同而有變化,
或是甚至不需要管他,電腦會自己判定,超爽的XD

整數 ( Integer )

整數類別,是指該儲存空間只能儲存『整數的數字』,
像是上面的舉例『9487』,
而要設定變數為整數類別,大部分的程式語言都會使用『 int 』這個詞,
因此就會看到如下的程式碼:

int number = 9487

要注意的是,在限定類別的情況下,
如果 number 這個變數塞進了『頑童MJ116』這個詞,
在部分程式語言的運行中,是會直接出錯,停止整個程式的,
因此去構思每個變數使用的資料類別,是非常重要的事情。

浮點數 (float)

浮點數類別,是指說該儲存空間只能儲存『有小數點的數字』,
因此上面的例子『9487.555』,才因為有小數點,能被儲存進浮點數類別的變數裡,
下面的程式碼就是浮點數的設定:

float min_number = 9487.555

而如果要儲存整數進這個變數裡,該整數會被加上『 .0 』,
因此 9487 會變成 9487.0。
在某些語言裡也會有類似的類別叫做 double 和 decimal ,
但就不在此贅述,有興趣的讀者歡迎可參考此文章對三者的比較:
https://dotblogs.com.tw/cinthiea/2010/12/06/19947

布林值(boolean)

布林值類別,是對於一般正常人類來說最抽象混沌的概念,
這個類別只有兩種值,『True』和『False』,
代表的意思,可以簡單說成分別是『對的』,『錯的』。
因為在程式的世界裡會有非常多的判斷情境,
例如: 如果『天線寶寶的智商大於 150 』這件事是『對的』,就跳出推薦天線寶寶動畫給小孩的廣告。
或是我們去判斷現在瀏覽者如果『是成年』這件事是『錯的』,就跳出詢問是否滿 18 歲的詢問(然後 99% 以上都按是...)
因此程式碼可以寫成:

boolean is_adult = False

就可以根據 is_adult 這個變數的值,去做出更多的變化

Null

Null 是一個非常特別的值,但是也是非常重要需要知道的概念,
Null 指的是『空無』,他跟『空』不太一樣,
就像一個邊緣人旁邊,看起來都是『空的』,因為沒有任何物體,
但是至少還有空氣,代表『空』。
但是『空無』就像真空的狀態,邊緣人旁邊連空氣都沒有的程度,
那這個就是『空無』的概念。
用程式寫起來,就會像這樣:


String a = "";
String b = null;

在程式面也會有個特色,字串會有一些功能,
使用在『空』上,造成的效果是『無效』,
但放在『空無』上,會變成『錯誤』,可能會讓程式當掉,
所以在寫程式的時候,要很小心這件事。

保留字

現在我們學會了如何宣告變數,並且可以根據個人語言的造詣,
設定自己喜歡的變數名稱。
但在程式的世界裡有個特殊的規則,叫做『保留字』,
他的意思是,你不可以把變數命名為保留字的其中一個,
這些保留字通常是程式語言會用到的特殊語法,
例如上面學到的 string, int, float 和 boolean,
也就是說,你不能把變數命名為 string, int, float, boolean 其中一項。
讀者也不用擔心會被限制許多,或是要先了解所有的保留字,
可以跟著筆者的脈絡,就能逐漸理解通常那些字會是保留字囉~~

如果有任何問題,或是指證文中的錯誤,歡迎寄信給我或留言在下面喔~


上一篇
[Day2] 語言的選擇與比較( 2 )
下一篇
[Day4] 程式基本邏輯(2) - 控制
系列文
菜鳥後端工程師的第一門課30

尚未有邦友留言

立即登入留言