變量、常數(shù)和數(shù)據(jù)類型概述
在 Visual Basic 環(huán)境下進行計算時,常常需要臨時存儲數(shù)據(jù)。例如,可能想要計算幾個值,將它們進行比較,并根據(jù)比較的結果對它們進行不同的操作。如果想要比較這些值,就要存儲它們,但不必把它們存入屬性。像大多數(shù)編程語言那樣,Visual Basic 使用變量來存儲值。變量具有名字(用來引用該變量所含的值的名詞)和數(shù)據(jù)類型(確定變量可以存儲的數(shù)據(jù)的種類)。數(shù)組可以用來存儲建立了索引的相關變量集。
常數(shù)也存儲數(shù)值,顧名思義,在整個應用程序執(zhí)行過程中,這些值都保持不變。常數(shù)的使用增加了代碼的可讀性,因為我們看到的是具有含義的名字而不是數(shù)字。Visual Basic 有許多內部常數(shù),但也可以建立自定義常數(shù)。
在 Visual Basic 中,數(shù)據(jù)類型控制了數(shù)據(jù)的內部存儲。按照缺省規(guī)定,VisualBasic 使用了變體數(shù)據(jù)類型。在不需要 Variant 提供的靈活性時,還有許多其它可用的數(shù)據(jù)類型,它們可用來優(yōu)化代碼的速度和大小。
變量
在 Visual Basic 中執(zhí)行應用程序期間,用變量臨時存儲數(shù)值。變量具有名字(用來引用變量所包含的值的詞)和數(shù)據(jù)類型(確定變量能夠存儲的數(shù)據(jù)的種類)。
可以把變量看作內存中存放未知值的所在處。例如,假定正在為水果鋪編一個銷售蘋果的軟件。在銷售實際發(fā)生之前并不知道蘋果的價格和銷量。此時,可以設計兩個變量來保存未知數(shù),將它們命名為 ApplePrice 和ApplesSold。每次運行程序時,用戶就這兩個變量提供具體值。為了計算總的銷售額,并且將結果顯示在名叫 txtSales 的文本框中,代碼應該是這樣的:
txtSales.txt = ApplePrice * ApplesSold
每次根據(jù)用戶提供的數(shù)值,這個表達式返回不同的金額。由于有了變量,就可以設計一個算式,而不必事先知道實際的輸入是多少。
在這個例子中,ApplePrice 的數(shù)據(jù)類型是貨幣,而 ApplesSold 的數(shù)據(jù)類型是整數(shù)。變量還可以表示許多其它數(shù)值,比如:文本數(shù)值、日期、各種數(shù)值類型,甚至對象也在此列。
存儲和檢索變量中的數(shù)據(jù)
用賦值語句進行計算,并將結果賦予變量:
ApplesSold = 10 '將值 10
'傳給變量。
ApplesSold = ApplesSold + 1
'變量值
'增一。
注意,例子中的等號是賦值符,并不是等于操作符;它將數(shù)值 (10) 賦予變量 (ApplesSold)。
聲明變量
聲明變量就是事先將變量通知程序。要用 Dim 語句聲明變量,Dim 語句提供了變量名:
Dim variablename [As type]
在過程內部用 Dim 語句聲明的變量,只有在該過程執(zhí)行時才存在。過程一結束,該變量的值也就消失了。此外,過程中的變量值對過程來說是局部的,也就是說,無法在一個過程中訪問另一個過程中的變量。由于這些特點,在不同過程中就可使用相同的變量名,而不必擔心有什么沖突和意想不到變故。
變量名:
1.必須以字母開頭。
2.不能包含嵌入的(英文)句號或者嵌入的類型聲明字符。
3.不得超過 255 個字符。
4.在同一個范圍內必須是的。范圍就是可以引用變量的變化域,如一個過程、一個窗體等等。
由于 Dim 語句中的可選的 As type 子句,可以定義被聲明變量的數(shù)據(jù)類型或對象類型。數(shù)據(jù)類型定義了變量所存儲信息的類型。String、Integer 和Currency 都是數(shù)據(jù)類型的例子。變量也可以包含來自Visual Basic或其它應用程序的對象。Object、Form1 和 TextBox 都是 Visual Basic 對象類型或類的實例。
詳細信息 關于對象的更詳細的信息,請參閱第九章“用對象編程”和第十章“用部件編程”。在本章后面的“數(shù)據(jù)類型”部分將詳細討論數(shù)據(jù)類型。聲明變量的其它方式:
不在過程內部,而在窗體、標準或類模塊的聲明段聲明變量,這將使變量對模塊中的所有過程有效。
用 Public 關鍵字聲明變量,這將使變量在整個應用程序中有效。
用 Static 關鍵字聲明一個局部變量,那么,即使過程結束,變量的值也仍然保留著。
隱式聲明
在使用一個變量之前并不必先聲明這個變量。 例如,可以書寫這樣一個函數(shù),在其中就不必在使用變量 TempVal 之前先聲
明它:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TempVal)
End Function
Visual Basic 用這個名字自動創(chuàng)建一個變量,使用這個變量時,可以認為它就是顯式聲明的。雖然這種方法很方便,但是如果把變量名拼錯了的話,會導致一個難以查找的錯誤。例如,假定寫了這樣一個函數(shù):
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
乍看起來,這兩段代碼好像是一樣的。但是因為在倒數(shù)第二行把 TempVal 變量名寫錯了,所以函數(shù)總是返回 0。當 Visual Basic 遇到新名字,它分辨不出這是意味著隱式聲明了一個新變量呢,還是僅僅把一個現(xiàn)有變量名寫錯了,于是只好用這個名字再創(chuàng)建一個新變量。
在 Visual Basic 環(huán)境下進行計算時,常常需要臨時存儲數(shù)據(jù)。例如,可能想要計算幾個值,將它們進行比較,并根據(jù)比較的結果對它們進行不同的操作。如果想要比較這些值,就要存儲它們,但不必把它們存入屬性。像大多數(shù)編程語言那樣,Visual Basic 使用變量來存儲值。變量具有名字(用來引用該變量所含的值的名詞)和數(shù)據(jù)類型(確定變量可以存儲的數(shù)據(jù)的種類)。數(shù)組可以用來存儲建立了索引的相關變量集。
常數(shù)也存儲數(shù)值,顧名思義,在整個應用程序執(zhí)行過程中,這些值都保持不變。常數(shù)的使用增加了代碼的可讀性,因為我們看到的是具有含義的名字而不是數(shù)字。Visual Basic 有許多內部常數(shù),但也可以建立自定義常數(shù)。
在 Visual Basic 中,數(shù)據(jù)類型控制了數(shù)據(jù)的內部存儲。按照缺省規(guī)定,VisualBasic 使用了變體數(shù)據(jù)類型。在不需要 Variant 提供的靈活性時,還有許多其它可用的數(shù)據(jù)類型,它們可用來優(yōu)化代碼的速度和大小。
變量
在 Visual Basic 中執(zhí)行應用程序期間,用變量臨時存儲數(shù)值。變量具有名字(用來引用變量所包含的值的詞)和數(shù)據(jù)類型(確定變量能夠存儲的數(shù)據(jù)的種類)。
可以把變量看作內存中存放未知值的所在處。例如,假定正在為水果鋪編一個銷售蘋果的軟件。在銷售實際發(fā)生之前并不知道蘋果的價格和銷量。此時,可以設計兩個變量來保存未知數(shù),將它們命名為 ApplePrice 和ApplesSold。每次運行程序時,用戶就這兩個變量提供具體值。為了計算總的銷售額,并且將結果顯示在名叫 txtSales 的文本框中,代碼應該是這樣的:
txtSales.txt = ApplePrice * ApplesSold
每次根據(jù)用戶提供的數(shù)值,這個表達式返回不同的金額。由于有了變量,就可以設計一個算式,而不必事先知道實際的輸入是多少。
在這個例子中,ApplePrice 的數(shù)據(jù)類型是貨幣,而 ApplesSold 的數(shù)據(jù)類型是整數(shù)。變量還可以表示許多其它數(shù)值,比如:文本數(shù)值、日期、各種數(shù)值類型,甚至對象也在此列。
存儲和檢索變量中的數(shù)據(jù)
用賦值語句進行計算,并將結果賦予變量:
ApplesSold = 10 '將值 10
'傳給變量。
ApplesSold = ApplesSold + 1
'變量值
'增一。
注意,例子中的等號是賦值符,并不是等于操作符;它將數(shù)值 (10) 賦予變量 (ApplesSold)。
聲明變量
聲明變量就是事先將變量通知程序。要用 Dim 語句聲明變量,Dim 語句提供了變量名:
Dim variablename [As type]
在過程內部用 Dim 語句聲明的變量,只有在該過程執(zhí)行時才存在。過程一結束,該變量的值也就消失了。此外,過程中的變量值對過程來說是局部的,也就是說,無法在一個過程中訪問另一個過程中的變量。由于這些特點,在不同過程中就可使用相同的變量名,而不必擔心有什么沖突和意想不到變故。
變量名:
1.必須以字母開頭。
2.不能包含嵌入的(英文)句號或者嵌入的類型聲明字符。
3.不得超過 255 個字符。
4.在同一個范圍內必須是的。范圍就是可以引用變量的變化域,如一個過程、一個窗體等等。
由于 Dim 語句中的可選的 As type 子句,可以定義被聲明變量的數(shù)據(jù)類型或對象類型。數(shù)據(jù)類型定義了變量所存儲信息的類型。String、Integer 和Currency 都是數(shù)據(jù)類型的例子。變量也可以包含來自Visual Basic或其它應用程序的對象。Object、Form1 和 TextBox 都是 Visual Basic 對象類型或類的實例。
詳細信息 關于對象的更詳細的信息,請參閱第九章“用對象編程”和第十章“用部件編程”。在本章后面的“數(shù)據(jù)類型”部分將詳細討論數(shù)據(jù)類型。聲明變量的其它方式:
不在過程內部,而在窗體、標準或類模塊的聲明段聲明變量,這將使變量對模塊中的所有過程有效。
用 Public 關鍵字聲明變量,這將使變量在整個應用程序中有效。
用 Static 關鍵字聲明一個局部變量,那么,即使過程結束,變量的值也仍然保留著。
隱式聲明
在使用一個變量之前并不必先聲明這個變量。 例如,可以書寫這樣一個函數(shù),在其中就不必在使用變量 TempVal 之前先聲
明它:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TempVal)
End Function
Visual Basic 用這個名字自動創(chuàng)建一個變量,使用這個變量時,可以認為它就是顯式聲明的。雖然這種方法很方便,但是如果把變量名拼錯了的話,會導致一個難以查找的錯誤。例如,假定寫了這樣一個函數(shù):
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
乍看起來,這兩段代碼好像是一樣的。但是因為在倒數(shù)第二行把 TempVal 變量名寫錯了,所以函數(shù)總是返回 0。當 Visual Basic 遇到新名字,它分辨不出這是意味著隱式聲明了一個新變量呢,還是僅僅把一個現(xiàn)有變量名寫錯了,于是只好用這個名字再創(chuàng)建一個新變量。