




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章 Visual Basic.NET過程控制VB.Net 程序設計教程 本章學習目標:掌握Sub過程和Function過程的定義與應用了解過程的參數傳遞方式了解變量與過程的作用域5.1 過程的概念在程序中,經常用到重復操作的部分,例如驗證用戶輸入是否正確,重復的驗證操作,可以使用一個子程序,每次用戶登錄系統時,可以調用這個子程序進行驗證,該子程序返回驗證的結果:“正確”或者“錯誤”。這個子程序就是過程。VB.NET提供三種過程:Sub過程、Function過程和事件過程。 5.2 Sub過程5.2.1Sub過程的定義 Sub過程也稱為子過程,其特點是沒有返回值。Sub過程可以有參數,也可無
2、參數。它的定義方法為:StaticPrivatePublic Sub () End Sub說明:(1)Sub過程以Sub開始,以End Sub結束,在兩者之間的描述過程操作的語句塊,稱為“過程體”。(2)過程名的命名規則與變量的命名規則相同。(3)參數Static表示在過程體中的變量為Static的,則在過程調用過程中,局部變量值保持不變;如果沒有Static關鍵字,則過程體中的局部變量的值在每次調用時被初始化為0。(4)Private說明過程是私有過程,只能被本模塊中的其它過程訪問。(5)Public說明過程是公有過程,可以在程序的任何地方訪問。(6)形式參數列表描述形式參數的類型、個數及次
3、序,在過程定義時無具體值,也不分配存儲空間。在過程被調用時,實際參數把實際的值傳遞給形式參數。過程可以沒有形式參數,此時括號中為空,但括號不能省略。形式參數的定義形式為: ByVal | ByRef 變量名( ) As 類型 ByVal說明該參數是傳值參數;否則該參數是引用參數。 ByRef說明該過程調用時,參數是按地址傳遞的。 形式參數可以是變量,也可以是數組,如果是數組,則需要括號。 類型為變量的類型,如果省略類型,表示該變量為變體型。(7)Sub過程沒有返回值。(8)如果要提前退出Sub過程,可以使用語句Exit Sub。【例5-1】編寫一個過程計算1+2+3+200,并輸出結果。 具體
4、操作步驟和源程序參見教材【例5-2】編寫一個過程,實現兩個整形數據的交換。 具體操作步驟和源程序參見教材5.2.2Sub過程的調用Sub過程的調用語句為:Call 過程名(參數表)說明:(1)Call關鍵字可以省略,例如computer()或Call computer() ;(2)參數列表的括號也可以省略,例如swap x,y、computer;(3)調用過程時,首先為形式參數分配臨時的存儲空間,再將實際參數的值傳遞給形式參數對應的臨時空間。【例5-3】編寫程序調用例5-1的過程。 具體操作步驟和源程序參見教材5.2.3過程參數的傳遞1形參與實參過程定義時參數列表中的參數為形式參數,形式參數為
5、變量。過程調用時調用語句中的參數為實際參數,實際參數可以為常量、變量、表達式、數組等。形式參數與實際參數的數量必須相等,每一對對應的形式參數與實際參數的類型必須是相同的。即使實參與形參的名字相同,也代表兩個不同的變量。2按值傳遞與按地址傳遞過程調用時把實際參數的值傳遞給形式參數,傳遞的方式可以有按值傳遞和按地址傳遞。形參列表中用ByVal關鍵字定義的參數為按值傳遞,用ByRef定義的參數為按地址傳遞,默認為按值傳遞。當按值傳遞時,系統為形參分配臨時存儲空間,將實參的值傳遞給形參,放在臨時空間中,調用過程中不再訪問實參,因此在過程體中只改變形參變量的值,不會影響到實參。當按地址傳遞時,將實參的地
6、址傳遞給形參,即形參與實參共享相同的臨時存儲空間,因此過程體中對于形參的改變也會影響到實參的值。【例5-4】編寫程序調用例5-2的過程。 具體操作步驟和源程序參見教材【例5-5】使用按值傳遞參數重新實現例5-4的過程。 具體操作步驟和源程序參見教材3數組參數如果使用數組作為過程的參數,就稱為數組參數。使用數組作參數時,不需要指定數組的下標界限,但必須指明數組的維數,數組名后的一對小括號也不能省略,以便與普通的變量進行區別。例如: Function Shuzu(x( ),y( ) End Function 調用語句為:Shuzu(a, b) Shuzu過程的兩個形參為數組x、y,從x、y后面的小
7、括號可以看出參數為數組而不是變量。調用語句實參的數組不需要小括號。數組參數的調用為按地址傳遞,即把數組a、b的首地址分別賦值給x、y。則在過程體中對x(1)的操作其實就是對a(1)操作。即使形參中的數組使用ByVal說明,該數組參數仍為按地址傳遞。【例5-6】編寫過程計算數組的各個元素的平均值。 具體操作步驟和源程序參見教材5.3 Function過程5.3.1Function過程的定義 Function過程也稱為函數,它與Sub的本質區別是有返回值。Function過程可以有參數,也可無參數。 它的定義方法為:StaticPrivatePublic Function()As=End Func
8、tion或StaticPrivatePublic Function()AsReturn 返回值End Function 說明:(1)Function過程以Function開始,以End Function結束,在兩者之間的描述過程操作的語句塊,稱為“函數”。(2)Function執行后要返回值,而Sub沒有返回值。值的返回的格式為:=或者為Return 返回值。(3)Function 函數頭中的As的類型與返回值的類型相同。(4)中途退出函數的語句為Exit Function。【例5-7】編寫一個函數,計算y=3*x2+4*x-5,并輸出值,其中x的值通過參數傳遞。 具體操作步驟和源程序參見教材
9、5.3.2Function函數的調用函數調用的語句為: 函數名(實際參數)因為函數要返回一個值,所以一般函數的調用放在“=”的右邊,把返回值賦值給某個變量。【例5-8】編寫程序調用例5-7的函數。 具體操作步驟和源程序參見教材【例5-9】用Return語句編寫函數返回值的語句,重現實現例5-7。 具體操作步驟和源程序參見教材5.4 變量的作用域與生存周期5.4.1 變量的作用域 每個變量定義后都有一定的有效范圍,變量只能在自己有效的范圍中使用。根據變量定義的位置不同,其訪問的有效范圍也不同。變量可以被訪問的范圍稱為變量的作用域。1塊范圍 塊是由End、Loop、Else以及Next語句終止的代
10、碼塊。它也是最小的代碼結構,在代碼塊中聲明的編程元素只能在塊內使用,這包括使用Dim語句聲明的變量和各類過程。2過程范圍 在過程內部聲明的變量也稱“局部變量”,它可在過程體的任何位置被引用,但在過程外是不能被引用的。當過程體執行結束時,過程范圍內聲明的任何變量就會被釋放。3模塊范圍 窗體是一種相對獨立的程序代碼載體或稱窗體模塊,它可以包含多個過程,如IDE創建的事件過程、Sub過程以及聲明的變量等編程元素,按此種方式聲明的變量的作用域為本窗體,在該窗體中的任何過程能夠訪問此變量。4命名空間范圍 如果變量使用Friend或Public關鍵字聲明,則該變量的作用域為整個命名空間,整個命名空間的所有
11、過程都可以訪問此變量。【例5-10】局部變量與全局變量的使用。 具體操作步驟和源程序參見教材5.4.2Static在程序設計時,如果某些變量的值在過程結束后仍然保留,此時要把這些變量聲明為靜態變量,聲明的方法為: Static 變量名 As 類型與一般局部變量不同的是,一般局部變量在過程結束后其值不再保留,而靜態變量在過程結束后值仍然保留。靜態變量僅在第一次對它進行定義并賦初值,以后在上次的基礎上對靜態變量訪問,不再對它進行初始化。【例5-11】一般局部變量與靜態變量的使用。 具體操作步驟和源程序參見教材5.5實訓指導【例5-12】編寫過程判斷某個數能否被n整除。在按鈕的事件中輸入一個數,并調用過程判斷此數能否被n整除并輸出結果。 具體操作步驟和源程序參見教材【例5-13】假設某個班有若干學生,每位學生有1門成績,編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司組織滑雪策劃方案
- 2025年物流與供應鏈管理考試卷及答案
- 2025年現代文學與書法藝術考試試題及答案
- 2025年企業文化與內部管理的考核試卷及答案
- 2025年品牌傳播與市場聯系考核考試試卷及答案
- 2025年可持續發展與環境政策基礎知識考試卷及答案
- 2025年媒體傳播與社會學習研究考試試卷及答案
- 2025年計算機網絡與信息安全課程考試題及答案
- 2025年材料科學與工程專業綜合能力測試卷及答案
- 2025年初中歷史學科教育考試試題及答案
- 《無衣》教學設計 統編版高中語文選擇性必修上冊
- 合肥市住宅小區物業服務等級標準
- 創造心智與創新訓練智慧樹知到期末考試答案2024年
- 食品廠員工衛生培訓方案
- 危房改造工程投標方案(技術標)
- 北京市西城區2022年五年級下冊《數學》期末試卷與參考答案
- (完整)大體積混凝土測溫記錄表
- 國開電大本科《中國法律史》在線形考(任務一至十二)試題及答案
- 提高住院病歷完成及時性持續改進(PDCA)
- 山東省濟寧市兗州區2022-2023學年八年級下學期期末數學試題(含答案)
- 加強中小學生作業管理完整PPT
評論
0/150
提交評論