- 21天學通Visual Basic
- 馬軍等編著
- 1774字
- 2019-01-09 13:52:25
2.4 變量
變量是指在程序運行時其值可以被改變的量,用來保存程序中的臨時數據。與常量相同,變量在計算機內部也是對應于一定的內存單元。對數據的操作通過變量名來進行。在Visual Basic 6.0中,變量可以分為4類:普通局部變量、靜態局部變量、模塊級變量和公用變量。本節就這4種變量的聲明和使用分別予以介紹。
2.4.1 普通局部變量
普通局部變量是只能在定義的函數或者過程中訪問的變量。普通局部變量在所需要使用的函數或過程中聲明,其生存周期從函數或過程調用開始到函數或過程結束終止。聲明普通局部變量的語法:
Dim<變量名>[As<常數的數據類型>]
參數說明如下所示。
· Dim:變量定義關鍵字。
· 變量名:指定該變量的名稱。
· 變量表達式:變量定義的數值、字符串等常數。以下代碼演示了部分普通局部變量的聲明示例。
01 Dim strName As String '定義字符串型普通局部變量 02 Dim bool As Boolean '定義邏輯型普通局部變量 03 Dim nCount As Integer '定義整數型普通局部變量
注意
在進行變量聲明時將整數型變量初始化為0,字符串變量初始化為空。
2.4.2 靜態局部變量
靜態局部變量是比較特殊的一種局部變量。與普通局部變量相比,普通局部變量生存周期從函數或過程調用開始到函數或過程結束終止,而靜態局部變量在每次調用后不會被釋放,即靜態局部變量的生存周期為整個程序運行期間。這個特點非常有用,常常用來計算程序中某個事件發生的次數。聲明普通局部變量的語法:
Static<變量名>[As<常數的數據類型>]
參數Static表示靜態局部變量定義關鍵字。以下部分是靜態局部變量的聲明示例。
01 '定義字符串型靜態局部變量 02 Static strName As String 03 '定義整數型靜態局部變量 04 Static nCount As Integer
注意
讀者必須將靜態局部變量和普通局部變量的生存周期區分清楚。靜態局部變量的生存周期為整個程序運行期間,而普通局部變量生存周期從函數或過程調用開始到函數或過程結束終止。
【范例2-4】如示例代碼2-4所示,代碼中定義了普通局部變量和靜態局部變量,可以很清楚地說明普通局部變量和靜態局部變量生存周期的不同。
示例代碼2-4
01 '普通局部變量與靜態局部變量的區別 02 Private Sub cmdCount_Click() 03 Dim count1 As Integer '定義普通局部變量count1 04 Static count2 As Integer '定義靜態局部變量count2 05 count1 = count1 + 1 '當用鼠標單擊“計數”按鈕時 06 count2 = count2 + 1 'count1和count2都自行加1 07 lbCount1.Caption = "普通局部變量計數值:" & count1 '顯示普通變量的結果 08 lbCount2.Caption = "靜態局部變量計數值:" & count2 '顯示靜態變量結果 09 End Sub
【運行結果】當用鼠標單擊“計數”按鈕時,分別用普通局變量和靜態局部變量計數。運行程序,單擊“計數”按鈕11后,可以看到普通局部變量的計數值為1次,而靜態局部變量數值為11次。程序將“計數”按鈕的單擊次數記錄下來,如圖所示。

圖2.8 靜態局部變量的引用
【代碼解析】通過以上的程序可以看到,每單擊一次“計數按鈕,普通局部變量count1都重新賦一次初值0。經過加一運算后,count1的值為1,在單擊按鈕這個過程結束后count1被釋放。當下一次單擊“計數”按鈕時,重復這一過程,所以count1顯示的值一直為1。而靜態局部變量count2在每次單擊后數值都會被保留,所以當單擊“計數”按鈕11次后,count2的值經過了11次加一運算為11。從而實現了按鈕單擊的計數功能。
2.4.3 模塊級變量
模塊級變量是只能被所在模塊中的過程訪問的變量。其作用范圍在模塊內部,不能被其他模塊訪問。如果有同名的公用變量同時存在,所訪問的變量是該模塊的模塊級變量。聲明模塊級變量的語法:
Private /Dim<變量名>[As<常數的數據類型>]
參數說明如下所示。
· Private/Dim:聲明該變量只能在該聲明的模塊中使用。建議用Private來聲明模塊級變量。
· 變量名:指定該變量的名稱。
以下代碼是模塊級變量的聲明示例。
01 Private nCount As Integer '定義整數型模塊級變量nCount 02 Private strAddr As String = "上地東里" '定義字符型模塊級變量strAddr
提示
對于一些經常用到的通用變量,可以定義為模塊級變量,但不能隨意地將變量定義為模塊級變量。大量的模塊級變量會導致計算機資源的浪費。
2.4.4 公用變量
公用變量可以在程序所有過程和函數中使用。公用變量通常在標準模塊的通用聲明部分中使用Public關鍵字來聲明。聲明公用變量的語法:
Public <變量名>[As<常數的數據類型>]
參數說明如下所示。
· Public:聲明該變量為公用變量。
· 變量名:指定該變量的名稱。
· As<常數的數據類型>:指定變量聲明的數據類型。
以下是公用變量的聲明示例。代碼如下所示。
01 Public Const bool As Boolean = False '定義邏輯型公用變量bool 02 Public Const nDog As Integer = 2 '定義整數型公用變量nDog 03 Public Const strAddr As String = "上地東里" '定義字符型公用變量strAddr 04 Private Const dateRem As Date = #01/01/2000# '定義日期型公用變量dateRem
提示
公用變量可以在程序中標識一定的條件關系。例如,在數據庫編程中常常會定義一個邏輯型公用變量來標識用戶的登錄情況,通過該變量來判斷當前用戶是否已經登錄。