4 變數、常數
在程式設計中,變數是一在某一塊記憶體位置中所放的資料,而這個變數(資料)可能會因程式的執行過程,而發生改變。
如同數學中之: y=f(x),x為一自變數、y為應變數、f(x)為一函數。例如:
令 半徑為x、圓周率為pi之圓周長為:
y=f(x)=2*pi*x
很明顯的,若是x的值改變,y的值也會改變。
我們在寫程式時要清楚的告訴程式,誰是變數?又變數是何種資料型別(Ch4-3)?為何要宣告呢?因為我們若不宣告或是宣告錯誤,會讓程式不知變數的資料型別,導致執行時的數值錯誤。
這個步驟叫做宣告變數,其語法如下:
Dim 變數名稱 As 資料型別
如以計算圓周長為例,我們可以宣告x、y為:
Dim x As Single
Dim y As Single
在程式的執行過程中不會被改變的稱為常數。同上例之圓周率pi。
我們可以在寫程式時告訴程式某個常數值為何,這個步驟叫做定義常數,其語法如下:
Const 常數名稱 As 資料型別=常數內容
如以計算圓周長為例,我們可以定義pi為:
Const pi As Single=3.1415
定義常數的優點為:某些常用而不需要在程式執行過程中改變的值,可在程式的起始定義之(如以上的pi值)。
而不管是變數或是常數,有一些保留字是VB中有特殊定義的(如object,private…等),不可使用。
4-3 資料型別
數字類
資料類別 | 數字類 | 數字類 | 數字類 | 數字類 | 文字類 |
資料型別 | Integer(整數) | Long(長整數) | Single(單精準浮點數) | Double(雙精準浮點數) | String(字串) |
型別字元 | % | & | ! | # | N/A |
佔用記憶體 | 2Bytes | 4Bytes | 4Bytes | 8Bytes | 視所使用的字串長度而定 |
範圍 | -32768~32767 | -2147483648~2147483647 | -3.402823E38~3.402823E38 (註2) |
-1.79769373486232E308~ 1.79769373486232E308 |
任何字元(包含數字) |
說明 | 沒有小數部份的整數(註1)。 | 同Integer但可以有更大範圍的整數。 | 可以包含小數的數,但精準度有限。 | 同Single但可以有更大範圍的數。 | 僅做"文字"使用(註3)。 |
註1.
若宣告為Integer,但使用者給的變數值含小數時,則以4捨6入,5以雙規則取整數,此規則僅在小數點下僅有一位數時才需要,使用此法的原因為,進位和捨去的機率會一樣大,而不致有4(1、2、3、4)捨5(5、6、7、8、9)入的不公平現象。
即:
取整數前 | 取整數後 | |
a.b | a | if b<=4 |
a.b | a+1 | if b>=6 |
a.b | a | if b=5, and a=2n , n=0,1,2,3......。 |
a.b | a+1 | if b=5, and a=2n+1 , n=0,1,2,3......。 |
例如:
取整數前 | 取整數後 | |
4.4 | 4 | 小數位小於等於4,故捨去。 |
4.6 | 5 | 小數位大於等於6,故進位。 |
4.5 | 4 | 小數位等於5,因整數位為偶數,故小數位捨去。 |
5.5 | 6 | 小數位等於5,因整數位為奇數,故小數位進位。 |
註2.
E為科學記號表示法,E為10的指數,如1.034E3=1034
註3.
若將數字宣告成String則有可能會有計算錯誤的問題。
製作程式(ex4_1.exe):
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click ''''若是要使用文字,則需宣告成string, |
ex_p2-14_Integer與Long
ex_p2-17_Single與Double
ex_p2-21字串