指令與資料

我們撰寫的每一行程式碼,通常都是一條「指令」,會讓電腦去執行相應的命令,例如print()命令的功能就是讓電腦印出括號內的資料,假設我們想在自己的筆記型電腦上新增一個功能,可以印出目前剩餘的電池電力。

print(...?)

不像印出 Hello World! 這麼單純,我們現在不知道要在括號裡面寫什麼了!因為不像印出固定的打招呼句子這麼簡單,我們的電池電力是會變動的,因此不可能寫成print(0)或者print(87%)這麼簡單的指令。

我們腦海中的想像可能是這樣的:

print(電池的電力)

我們希望電腦會自動的去查找電池的電力現在剩餘多少,然後最後印出87%這樣的訊息,這有沒有可能做到呢?完全是可以做到的!我們所寫的這些電池的電力Hello World!就是「資料」,前者是一個會隨著電池狀態變動的數值(我們希望如此),後者是固定的句子,而這些資料將會與指令結合,交付電腦,最後正確的做出使用者的命令。

為了達成這樣的目標,我們在使用資料之前,都必須告訴電腦「我需要一條這樣的資料,請把它放在記憶體裡。」之後我們使用這項資料的時候,電腦才有辦法在記憶體裡面認出我們到底試圖告訴它什麼。

Swift 語言提供兩種基本的方法:

let a = 1
var b = 2

第一行用let指令告訴電腦,我們要有一個「常數」叫做 a,而它等於 1。第二行用var指令告訴電腦,我們要有一個「變數」叫做 b,而它目前等於 2。常數和變數的區別是,常數一旦建立在電腦的記憶體之後,它的值就不會改變,而變數的值在建立之後仍然能被改變。試圖用指令去改變一個常數的值,電腦會做出錯誤警告,程式是無法執行的。

為什麼要有這樣的區別?動腦想想什麼情況下會用常數,什麼情況下會用變數?

有了這樣的資料之後,我們就可以在指令裡面使用了:

print(a+b) 
  // 將會印出3

b = 5
  // 將變數b的值改為5

print(a+b)
  // 將會印出6

這邊順帶一提,在程式碼裡面我們可以任意的加入以//開頭的文字,這稱為「註解」,用於標註筆記,//後面的任何文字或指令,電腦都不會理睬,只是給我們自己看的,而//前面的指令仍然會被執行。

另一個要特別提到的是,在電腦的世界裡面,等號=的用處和人類世界裡是不同的,它的意思是「將等號右邊的值,放進等號左邊的資料裡」,因此有時候我們會看到這樣的程式碼:

b = b+1

在人類世界裡面使用這種程式碼,可能會被數學老師直接八頭,但是在電腦的領域,它首先會檢查等號右邊的程式碼,看到b+1這樣的算式後,它去查找b的值,發現目前是5,於是它將算式5+1的結果:6,存進變數b裡面,因此執行完這行程式碼之後,變數b的值變成了6

results matching ""

    No results matching ""