一、聲明變量
變量在使用前,必須在代碼中進行聲明, 即創(chuàng)建該變量 。
在使用變量之前,首先需要聲明變量。就是說,必須事先告訴編譯器在程序中使用了哪些變量,及這些變量的數(shù)據(jù)類型以及變量的長度。這是因為在編譯程序執(zhí)行代碼之前編譯器需要知道如何給語句變量開辟存儲區(qū),這樣可以優(yōu)化程序的執(zhí)行。
聲明變量有兩種方式:隱式聲明、顯式聲明。
隱式聲明: 變量可以不經(jīng)聲明直接使用,此時 VB 給該變量賦予缺省的類型和值。這種方式比較簡單方便,在程序代碼中可以隨時命名并使用變量,但不易檢查。
顯式聲明: 用聲明語句創(chuàng)建變量。
強制顯式聲明變量 :
為了避免寫錯變量名引起的麻煩,用戶可以規(guī)定,只要遇到一個未經(jīng)明確聲明就當(dāng)成變量的名字, VB 都發(fā)出錯誤警告。方法是 ---- 強制顯式聲明變量。要強制顯式聲明變量,只須在類模塊、窗體模塊或標(biāo)準(zhǔn)模塊的聲明段中加入這條語句:
Option Explicit
這條語句是用來規(guī)定在本模塊中所有變量必須先聲明再使用,即不能通過隱式聲明來創(chuàng)建變量。在添加 Option Explicit 語句后, VB 將自動檢查程序中是否有未定義的變量,發(fā)現(xiàn)后將顯示錯誤信息。
如果要
自動插入
Option Explicit
語句
,用戶只要在
“
工具
”
菜單中選取
“
選項
”
命令,然后單擊
“
選項
”
對話框中的
“
編輯器
”
選項卡,再選中
“
要求變量聲明
”
選項,如下圖
變量的作用域指的是變量的有效范圍。為了能正確地使用變量的值,應(yīng)當(dāng)明確可以在程序的什么地方訪問該變量。 VB 中變量可以分為 3 類:局部( Local )變量、模塊( Module )變量及全局( Public )變量,其中模塊變量包括窗體模塊變量和標(biāo)準(zhǔn)模塊變量。各變量位于不同的層次。
局部變量
過程級變量只有在聲明它們的過程中才能被識別,它們又稱為局部變量。
用 Dim 或者 Static 關(guān)鍵字來聲明它們,兩者的區(qū)別在于: 在整個應(yīng)用程序運行時,用 Static 聲明的局部變量中的值一直存在,而用 Dim 聲明的變量只在過程執(zhí)行期間才存在。
對任何臨時計算來說,局部變量是最佳選擇。例如,可以建立十來個不同的過程,每個過程都包含稱作 intTemp 的變量(同一個變量名在不同的過程中意義可能不同)。只要每個 intTemp 都聲明為局部變量,那么每個過程只識別它自己的 intTemp 版本。任何一個過程都能夠改變它自己的局部的 intTemp 變量的值,而不會影響別的過程中的 intTemp 變量。
模塊變量
按照缺省規(guī)定,模塊級變量對該模塊的所有過程都可用,但對其它模塊的代碼不可用。可在模塊頂部的聲明段用 Private 或 Dim 關(guān)鍵字聲明模塊級變量,從而建立模塊級變量。例如:
Private intTemp As Integer
在模塊級, Private 和 Dim 之間沒有什么區(qū)別,但 Private 更好些,因為很容易把它和 Public 區(qū)別開來,使代碼更容易理解。
全局變量
為了使模塊級的變量在其它模塊中也有效,用 Public 關(guān)鍵字聲明變量。公用變量中的值可用于應(yīng)用程序的所有過程。和所有模塊級變量一樣,也在模塊頂部的聲明段來聲明公用變量。例如
Public intTemp As Integer
注意: 不能在過程中聲明公用變量,只能在模塊的聲明段中聲明公用變量。
總結(jié)以上可知 : 聲明語句有如下四種格式 , 這四種語句創(chuàng)建了不同特性的變量,下面來作詳細(xì)的介紹:
(I)Dim 語句,其格式為:
Dim <變量名> [As <數(shù)據(jù)類型> ]
程序運行時,上述聲明在內(nèi)存中為變量分配空間,并使 Visual Basic 了解隨后要處理數(shù)據(jù)的數(shù)據(jù)類型。
Dim 語句用于在標(biāo)準(zhǔn)模塊( Module )、窗體模塊( Form )或過程( Procedure )中定義變量或數(shù)組
用 Dim 語句在窗體的過程中聲明的變量稱為 局部變量 ,其作用域僅局限在本過程內(nèi)部,過程一旦執(zhí)行完畢,其值也就消失了。
例如
Dim Number As Integer ' 聲明 Number 為 Integer (整型)變量。
Dim I As Integer,j As Integer,k As Integer ' 同時聲明為整型變量。
Dim AnyValue,MyValue 'AnyValue 和 MyValue 按缺省情況被聲明為 Variant 類型,同時值被設(shè)為 Empty (空)。
Dim AnotherVar, Choice As Boolean, BirthDate As Date ' 在一行中聲明多種類型變量, AnotherVar 為 Variant 類型,因為它的類型被省略了, Choice 為布爾型變量, BirthDate 為日期型變量。
(2)Private 語句.其格式為:
Private <變量名> [As <數(shù)據(jù)類型> ]
如果要 在一個窗體模塊的所有過程中共享同一個變量 ,則應(yīng) 在這個窗體模塊的聲明段 用 Private 語句進行聲明.這種變量稱為 模塊級變量 ,其作用域為整個窗體模塊。這就好比是您家里的電話號碼,它在您所在的城市是通用的,但出了這個范圍就不能單獨使用了。
(3)Public 語句,其格式為:
Public <變量名> [As <數(shù)據(jù)類型 > ]
用來在標(biāo)準(zhǔn)模塊中定義全局變量或數(shù)組 。如果在標(biāo)準(zhǔn)模塊的聲明段中用 Public 關(guān)鍵字來聲明模塊級變量,那么這個變量的作用域是整個工程,即它會在整個工程的所有模塊中有效,這種變量稱為 全局變量,也稱公用變量 。這就好比是加了郵政區(qū)號的電話號碼,在全國范圍內(nèi)通用。
(4)static 語句.其格式為:
static <變量名> [As <數(shù)據(jù)類型> ·
局部變量在過程執(zhí)行結(jié)束后其值不能被保留下來,在每一次過程重新執(zhí)行時,變量會被重新初始化。如果 希望在該過程結(jié)束之后,還能繼續(xù)保持過程中局部變量的值 ,就應(yīng)該用 static 關(guān)鍵字將這個變量 聲明為靜態(tài)變量 。這樣,即使過程結(jié)束,該靜態(tài)變量的值也仍然保留著。
例如我們可以為一個窗體編寫下面這樣一程序,可以對用戶在窗體上單擊的次數(shù)計數(shù)并用顯示出來。
Private Sub Form_click()
Static I As Integer
I = I + 1
Label1.Caption = I
End Sub
再如:
Private Sub Command1_Click()
Static IntCount As Integer
IntCount = IntCount + 1
Select Case IntCount
Case 1
Command1.Caption = "
春眠不覺曉
"
Case 2
Command1.Caption = "
處處聞啼鳥
"
Case 3
Command1.Caption = "
夜來風(fēng)雨聲
"
Case Else
Command1.Caption = "
花落知多少
"
IntCount = 0
End Select
End Sub
將 Static 換成 Dim, 運行一下,連續(xù)單擊窗體,兩者結(jié)果的不同顯而易見。
注意 : 就像在過程中不能使用 Public 和 Private 關(guān)鍵字一樣,在模塊的聲明段中不能使用 static 關(guān)鍵字,會報錯。
定義完變量,初值的問題:
整數(shù): 0
浮點數(shù): 0.0
字符串:""
Variant : Empty (保留字,關(guān)鍵字)不同與 null , 0 , Nothing
判斷它有沒有賦值,就看它的值是不是 empty
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
