實(shí)例3.6使用函數(shù)過(guò)程
編寫(xiě)一個(gè)函數(shù),用來(lái)計(jì)算整數(shù)1 ~n的累加結(jié)果,n的大小在調(diào)用函數(shù)時(shí)指定。為此,編寫(xiě)一個(gè)以n為參數(shù)的函數(shù)過(guò)程,代碼如下:
Private Function Sum(n As Integer) As Ineger
Dim s As Integer
S-0
For j=1 To n
s=s+i
Next
Sum=s
End Function
在窗體的Click事件過(guò)程中調(diào)用自定義的函數(shù),代碼如下:
Private Sub Prom_Click()
Dim r As Integer
r=Sum(100)
Print F
Ebs Sub
在調(diào)用自定義過(guò)程時(shí),調(diào)用者是通過(guò)參數(shù)向過(guò)程傳遞信息的。通常,把自定義過(guò)程中的變量稱(chēng)為形參;把調(diào)用這個(gè)過(guò)程時(shí)使用的參數(shù)稱(chēng)為實(shí)數(shù)。在VB中,參數(shù)的傳遞方式有兩種:傳址和傳值,其中傳址也被稱(chēng)為引用,是VS默認(rèn)的參數(shù)傳遞方式。如果在定義過(guò)程時(shí),在形參前加上關(guān)鍵字ByVal則參數(shù)傳遞方式變?yōu)閭髦怠?/P>
傳址是指在調(diào)用過(guò)程時(shí),將實(shí)參的地址傳遞給形參。因此,在被調(diào)用的過(guò)程體中對(duì)形參的任何操作都變成了對(duì)實(shí)參的操作。例如,當(dāng)形參的值變?yōu)樵瓉?lái)的2倍時(shí),則實(shí)參的值也變?yōu)樵瓉?lái)的兩倍。
傳值是指在調(diào)用過(guò)程時(shí),將實(shí)參的值賦給形參,而實(shí)參本身與形參沒(méi)有聯(lián)系。因此,在被調(diào)用過(guò)程體中對(duì)形參的任何操作都不會(huì)影響到實(shí)參。
實(shí)例3.7傳址和傳值
編寫(xiě)一個(gè)用于交換兩個(gè)數(shù)的子過(guò)程Swl,該過(guò)程采用傳址方式傳遞參數(shù),過(guò)程代碼如下:
private Sub Swl (a As Single,b As Single)
Dim s As Single
s=b
b=a
a=s
End Sub
再編寫(xiě)一個(gè)過(guò)程體與Swl完全相同的子過(guò)程Sw2,不同的是Sw2采用的是傳值方式傳遞參數(shù),過(guò)程代碼如下:
Private Sub Sw2 (Byval a As Single,Byval b As sinlgle)
Dim s As Single
s=b
b=a
a=s
End Sub
編寫(xiě)窗體的Click事件過(guò)程,在該過(guò)程中使用相同的參數(shù)分別調(diào)用子過(guò)程Swl和Sw2,代碼如下:
Private Subb Form_click()
Dim x As single
Dim y AS Single
x=10
y=20
Print “x=“& x
Print “y=“& y
swl x,y 調(diào)用子過(guò)程swl
Print "使用子句swl交換兩個(gè)數(shù)后:
Print “x=“& x
Print “y=“& y
x=10 重新給x,y賦值
y=20
sw2x,y 調(diào)用子過(guò)程sw2
Print “使用子過(guò)程sw2交換兩個(gè)數(shù)后:”
Print“x=”& x
Print“y=”& y
End Sub
運(yùn)行該程序,單擊窗體,結(jié)果如圖3.24所示。從打印出的結(jié)果可以看出,調(diào)用子程序Swl達(dá)到了交換兩個(gè)數(shù)的目的,而調(diào)用子程序Sw2后,兩個(gè)數(shù)卻沒(méi)有發(fā)生任何變化。這就是因?yàn)樽映绦騍w2采用的是傳值的方式,實(shí)參x和Y僅僅是將它們的值分別賦給了形參a和b,而x/y本身與a/b沒(méi)有任何聯(lián)系,因此,在過(guò)程體中對(duì)形參a和b的操作不會(huì)影響到x和y。
在前面的實(shí)例中,我們可以看到自定義過(guò)程的形參個(gè)數(shù)總是固定的,并且在調(diào)用它時(shí),必須提供與形參相對(duì)應(yīng)的實(shí)參,即實(shí)參的個(gè)數(shù)與類(lèi)型要與形參的完全相同。
在VB中,也可以定義具有可選參數(shù)的過(guò)程,所謂"可選參數(shù)"是指過(guò)程中的一類(lèi)特殊形參,在調(diào)用過(guò)程時(shí),可以為它們提供實(shí)參也可以不提供實(shí)參。如果不提供實(shí)參,則可選參數(shù)使用它的默認(rèn)值。
將某個(gè)形參定義為可選參數(shù)的方法是在它的名稱(chēng)前加上關(guān)鍵字Optional,在定義的同時(shí)也可指定它的默認(rèn)值。需要注意的是,可選參數(shù)一定要位于子過(guò)程或函數(shù)過(guò)程的末尾。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |