【正文】
Print X, Y, Z End Sub 單擊 C1后運(yùn)行結(jié)果 : 1 2 3 2 3 5 第九章 過(guò) 程 50 例 : Sub S() Static Z As Integer Z = Z + 2 Print Z End Sub Private Sub Command1_Click() Dim Z As Integer Z = Z + 2 Call S Print Z End Sub 第一次單擊 C1結(jié)果 : 2 2 第二次單擊 C1結(jié)果 : 4 2 第三次單擊 C1結(jié)果 : 6 2 第九章 過(guò) 程 51 2. 模塊級(jí)變量 ? 聲明 在模塊的通用聲明段中用以下方法聲明的變量。 Private 39。 在模塊運(yùn)行時(shí)被初始化 Dim 39。 在模塊運(yùn)行時(shí)被初始化 ? 作用范圍 在該模塊的所有過(guò)程中都起作用 其他模塊不能訪問(wèn)這些變量 3. 全局變量 ? 聲明 在模塊的通用聲明段中用以下方法聲明的變量 Public 39。 應(yīng)用程序運(yùn)行時(shí)被初始化 ? 作用范圍 : 應(yīng)用程序的所有過(guò)程 第九章 過(guò) 程 52 例 : Dim Z As Integer Sub S() Z = Z + 2 Print Z End Sub Private Sub C1_Click() Z = Z + 2 Call S Print Z End Sub 第一次單擊 C1結(jié)果 : 4 4 第二次單擊 C1結(jié)果 : 8 8 第三次單擊 C1結(jié)果 : 12 12 第九章 過(guò) 程 53 例 : Dim Z As Integer Sub S() Dim Z Z = Z + 2 Print z End Sub Private Sub C1_Click() Z = Z + 2 Call S Print Z End Sub 第一次單擊 C1結(jié)果 : 2 2 第二次單擊 C1結(jié)果 : 2 4 第三次單擊 C1結(jié)果 : 2 6 第九章 過(guò) 程 54 【例 914】 P160例 921 標(biāo)準(zhǔn)模塊 : 39。M1存放 N的立方值, M2存放 N的階乘值 Public M1 As Integer, M2 As Integer 39。定義求階乘函數(shù) F(N) Public Function F(N) As Integer F1 = 1 For I = 1 To N F1 = F1 * I Next I F=F1 End Function I: 局部變量 F1: 局部變量 N: 形式參數(shù) F: 公共函數(shù) M M2: 全局變量 第九章 過(guò) 程 55 Form1模塊 : Dim N As Integer Private Sub C1_Click() N = Val() M1 = N * N * N = M1 End Sub Private Sub C2_Click() M2 = F(N) = M2 End Sub Private Sub C3_Click() End Sub N: 模塊級(jí)變量 實(shí)際參數(shù) F: 公共函數(shù) M M2: 全局變量 第九章 過(guò) 程 56 Private Sub C1_Click() = M1 End Sub Private Sub C2_Click() = M2 End Sub Private Sub C3_Click() If M1 O Then = Format(M2 / M1, ) Else MsgBox 被除數(shù)為零,請(qǐng)重輸 End If End Sub Private Sub C4_Click() Unload Me End Sub M M2: 全局變量 第九章 過(guò) 程 57 變量的生存期 靜態(tài)變量 : 在應(yīng)用程序執(zhí)行期間保留不變 動(dòng)態(tài)變量 : 在所在的模塊 (過(guò)程 )運(yùn)行時(shí)被初始化 Static Sub SS1() 39。 局部變量 I,S為靜態(tài)變量 For I = 1 To 10 S = S + I Next I Print S End Sub Private Sub Command1_Click() Call SS1 End Sub 第九章 過(guò) 程 58 本章小結(jié) 1. 函數(shù)過(guò)程的定義和調(diào)用 定義 : [Public | Private ] [Static] Function 函數(shù)名 [(形參表 )] [As 類型 ] …… [函數(shù)名 =表達(dá)式 ] …… End Function 形參表 :變量、數(shù)組名 () 調(diào)用 : 函數(shù)名 (實(shí)參表 )出現(xiàn)在表達(dá)式可以出現(xiàn)的位置 第九章 過(guò) 程 59 2. Sub過(guò)程的定義和調(diào)用 定義 : [Private | Public ] [Static] Sub 過(guò)程名 ([形參表]) …… End Sub 調(diào)用 : (1)Call 過(guò)程名 ([實(shí)參表 ]) (2)過(guò)程名 [實(shí)參表 ] 實(shí)參表 : 常量、變量、表達(dá)式 參數(shù)應(yīng)與定義時(shí)一致 (個(gè)數(shù)、類型、次序 ) 注意 : 實(shí)參與形參的類型聲明位置 注意 : Sub過(guò)程調(diào)用與函數(shù)過(guò)程調(diào)用的區(qū)別 第九章 過(guò) 程 60 3. 過(guò)程之間的參數(shù)傳遞 按值傳送、按地址傳送 CALL S (實(shí)際參數(shù) ) SUB S(形式參數(shù) ) 按值傳送 : 實(shí)際參數(shù)為常數(shù)、表達(dá)式、 ByVal 變量 按地址傳送 : 實(shí)際參數(shù)變量、 ByRef 變量、數(shù)組名 () 4. 過(guò)程的作用域 模塊級(jí)過(guò)程 全局級(jí)過(guò)程 窗體模塊 : .frm 標(biāo)準(zhǔn)模塊 : .bas 按值傳送 按地址傳送 第九章 過(guò) 程 61 局部變量 模塊級(jí)變量 全局變量 6. 變量的生存期 動(dòng)態(tài)變量 靜態(tài)變量