VB程序設(shè)計余凌課件_第1頁
VB程序設(shè)計余凌課件_第2頁
VB程序設(shè)計余凌課件_第3頁
VB程序設(shè)計余凌課件_第4頁
VB程序設(shè)計余凌課件_第5頁
已閱讀5頁,還剩410頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1 2 v學(xué)時:48(32+16) v教材: vVB程序設(shè)計教程 周靄如, 清華大學(xué)出版社 v參考資料: vVB6.0入門與提高 張樹兵, 清華大學(xué)出版社 vVB程序設(shè)計教程 劉瑞新, 電子工業(yè)出版社 vVB實用教程 鄭阿奇, 電子工業(yè)出版社 3 教學(xué)內(nèi)容教學(xué)內(nèi)容 v第一章 概述 2學(xué)時 v第二章 數(shù)據(jù)與表達(dá)式 4學(xué)時 v第三章 順序結(jié)構(gòu) 2學(xué)時 v第四章 分支結(jié)構(gòu) 2學(xué)時 v第五章 循環(huán)結(jié)構(gòu) 2學(xué)時 v第六章 VB常用控件 v第七章 數(shù)組與記錄 2學(xué)時 v第八章 過程 4學(xué)時 4 v第九章 文件 2學(xué)時 v第十章 菜單、多重窗體與多重文檔 2學(xué)時 v第十一章 繪圖 2學(xué)時 v第十二章 程序調(diào)

2、試與錯誤處理 2學(xué)時 v附:ACCESS數(shù)據(jù)庫應(yīng)用 4學(xué)時 v總結(jié) 2學(xué)時 5 教學(xué)目的要求教學(xué)目的要求: 了解VB的發(fā)展過程和特點 掌握VB集成開發(fā)環(huán)境 理解面向?qū)ο蟪绦蛟O(shè)計方法 掌握VB工程開發(fā)設(shè)計步驟 教學(xué)重點教學(xué)重點 VB集成開發(fā)環(huán)境 VB工程開發(fā)設(shè)計步驟 面向?qū)ο蟪绦蛟O(shè)計方法 第1章 概述 6 時間安排:時間安排: 2學(xué)時 教學(xué)難點:教學(xué)難點: 面向?qū)ο蟪绦蛟O(shè)計中對象、屬性、方法、事件 等概念 7 1.1 VB1.1 VB的發(fā)展過程和特點的發(fā)展過程和特點 一、發(fā)展過程: 年: . 年秋:. 年: . 年: . 年: . 年: . Windows操作系統(tǒng)產(chǎn)生初期,人們只能利用Windo

3、ws API(應(yīng)用程序接口)的一千多個函數(shù)編寫程序。微軟 公司就開發(fā)了當(dāng)今流行的Microsoft Visual Studio工 具套件,就是其中一種。 8 VB6.0 版本 學(xué)習(xí)版: Learning VB的基礎(chǔ)版本,可開發(fā)WINDOWS或WINDOWS NT 程序。內(nèi)容包括所有內(nèi)部控制以及網(wǎng)絡(luò)、數(shù)據(jù) 綁定控件。 專業(yè)版: Professional 為專業(yè)編程人員開發(fā)功能強大的分布式應(yīng)用程 序。包括專業(yè)版的全部功能,同時具有自動化 管理器、部件管理器及數(shù)據(jù)庫管理工具。 企業(yè)版: Enterprise 為專業(yè)編程人員提供的一套功能完備工具。包 括學(xué)習(xí)版的全部功能和ActiveX控件、Inter

4、net 控件開發(fā)工具、動態(tài)HTML頁面設(shè)計。 9 二、二、VBVB主要功能特點主要功能特點 VB是面向?qū)ο蟮目墒敲嫦驅(qū)ο蟮目?視化程序設(shè)計工具視化程序設(shè)計工具 友好的集成開發(fā)友好的集成開發(fā) 環(huán)境環(huán)境 支持多種數(shù)據(jù)庫系統(tǒng)支持多種數(shù)據(jù)庫系統(tǒng) 的訪問的訪問 支持動態(tài)數(shù)據(jù)交換、支持動態(tài)數(shù)據(jù)交換、 動態(tài)鏈接庫、對象的動態(tài)鏈接庫、對象的 鏈接與嵌入技術(shù)及鏈接與嵌入技術(shù)及 ctiveXctiveX技術(shù)技術(shù) 10 1.2 VB61.2 VB6.0 .0 集成開發(fā)環(huán)境集成開發(fā)環(huán)境 VB6.0啟動: 11 工具箱工具箱 窗體設(shè)計窗體設(shè)計 器窗口器窗口 代碼編輯代碼編輯 器窗口器窗口 標(biāo)題欄標(biāo)題欄 工具欄工具欄 菜

5、單欄菜單欄 工程資工程資 源編輯源編輯 器窗口器窗口 窗體窗體 布局布局 窗口窗口 屬性窗口屬性窗口 12 標(biāo)題欄標(biāo)題欄 可顯示當(dāng)前VB的工作模式: 設(shè)計模式:可進行界面設(shè)計和代碼編寫 運行模式:運行程序 中斷模式:程序運行暫時中斷,可編輯代碼,但不可設(shè)計界面 13 工程資源管理窗口工程資源管理窗口 一個工程由多種類型的文件組成, 如工程文件、窗體文件、標(biāo)準(zhǔn)模 塊文件等,在工程資源管理窗口 中以樹形目錄結(jié)構(gòu)的形式列出了 當(dāng)前工程中包括的所有文件。 工程文件(.vbp) 窗體文件(.frm) 標(biāo)準(zhǔn)模塊文件(.bas) 類模塊文件(.cls) 工程組文件(.vbg) 資源文件(.res) 查看對象

6、查看對象 切換文件夾切換文件夾 查看代碼查看代碼 14 屬性窗口屬性窗口 屬性窗口主要對窗體和控件設(shè)置 對象下拉列表框 可列出當(dāng)前所有 對象 選項卡 屬性說明 屬性列表框 屬性值 15 代碼編輯器窗口代碼編輯器窗口: 對象下拉 列表框 事件過程下 拉列表框 過程查看 全部過程 查看 自動列出 成員特性 代碼窗口 窗口拆分欄 用于顯示和編輯代碼 16 傳統(tǒng)過程化應(yīng)用程序傳統(tǒng)過程化應(yīng)用程序 從第一行開始執(zhí)行,并按照預(yù)定 的路徑執(zhí)行,用戶無法改變程序 的流程 事件驅(qū)動的應(yīng)用程序事件驅(qū)動的應(yīng)用程序代碼不是按預(yù)定的路徑執(zhí)行,而 是在響應(yīng)不同事件時執(zhí)行不同 的代碼段. 事件觸發(fā)事件觸發(fā) 由用戶觸發(fā)由用戶觸

7、發(fā) 由操作系統(tǒng)觸發(fā)由操作系統(tǒng)觸發(fā) 由其它應(yīng)用程序的消息觸發(fā)由其它應(yīng)用程序的消息觸發(fā) 采用面向?qū)ο?、事件?qū)動方式的編程采用面向?qū)ο蟆⑹录?qū)動方式的編程, ,程序員不需要考慮精確次序執(zhí)行的程序員不需要考慮精確次序執(zhí)行的 每一步驟,而只需編寫響應(yīng)用戶動作的程序即可,工作量相對較少。用每一步驟,而只需編寫響應(yīng)用戶動作的程序即可,工作量相對較少。用VBVB 編程,實際上是與一組標(biāo)準(zhǔn)對象進行交互的過程。編程,實際上是與一組標(biāo)準(zhǔn)對象進行交互的過程。 1.3 1.3 面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計 17 對象對象 是系統(tǒng)中的基本運行實體是系統(tǒng)中的基本運行實體, ,是代碼和數(shù)據(jù)的集合是代碼和數(shù)據(jù)的集合. .

8、用戶定義 對象是具有特殊屬性(數(shù)據(jù))和行為方式(方法)的實體。建 立對象后,其操作與該對象有關(guān)的屬性、事件和方法來描述。 類類 是封裝數(shù)據(jù)和隱藏數(shù)據(jù)的工具是封裝數(shù)據(jù)和隱藏數(shù)據(jù)的工具, ,是一組用來定義對象是一組用來定義對象 的相關(guān)過程和數(shù)據(jù)的集合的相關(guān)過程和數(shù)據(jù)的集合. . 一個對象就是類的一個實例一個對象就是類的一個實例 類具有封裝性、繼承性和多態(tài)性特征類具有封裝性、繼承性和多態(tài)性特征 VBVB中,對象分中,對象分 系統(tǒng)定義,如窗體、菜單等 18 屬性屬性 是一個對象的特性,不同的對象有不同的屬性。是一個對象的特性,不同的對象有不同的屬性。 對象常見的屬性: 標(biāo)題(Caption) 名稱(N

9、ame) 顏色(Color) 字體(Font) 是否可見(Visible) 19 通過修改對象的屬性,可以改變對象的外觀與功能。 在屬性窗口上設(shè)置 在程序代碼中用賦值語句設(shè)置 屬性設(shè)置屬性設(shè)置 格式: .= 例: Command1.Caption=“確定” Command1.Font=19 20 事件 在VB中,系統(tǒng)為每一對象預(yù)先定義好一系列的事件,如: 單擊(Click) 雙擊(DblClick) 裝入事件(Load) 改變事件(Change) 鼠標(biāo)移動事件(MouseMove) 獲取焦點事件(GotFocus) 是指發(fā)生在對象上的事情。是指發(fā)生在對象上的事情。 事件過程的一般格式: Pri

10、vate Sub _() End Sub 例: Private Sub Command1_Click() Form1.BackColor = vbRed End Sub 21 方法 方法是面向?qū)ο蟪绦蛟O(shè)計中所特有的,是一種特殊的過 程和函數(shù),可供用戶直接調(diào)用。 如:打印(Print)方法、顯示窗體(Show)方法、清除(Cls)方法、移動(Move) 方法 對象調(diào)用格式: . 是指對象要執(zhí)行的動作。是指對象要執(zhí)行的動作。 22 1.4 VB1.4 VB程序設(shè)計的基本步驟程序設(shè)計的基本步驟 程序設(shè)計的一般過程程序設(shè)計的一般過程 分析問題分析問題 設(shè)計算法設(shè)計算法 繪制流程圖繪制流程圖 編制程序編

11、制程序 調(diào)試程序調(diào)試程序 23 新建一個工程新建一個工程 設(shè)計用戶界面設(shè)計用戶界面 編寫事件過程及通用過程代碼編寫事件過程及通用過程代碼 保存、調(diào)試、運行,保存、調(diào)試、運行, 形成可執(zhí)行文件形成可執(zhí)行文件 以求兩數(shù)和的程序為例,說明VB工程的建立全過程 VB程序設(shè)計的基本步驟程序設(shè)計的基本步驟 24 1、新建工程、新建工程 途徑有兩種:途徑有兩種: 啟動VB后,在系統(tǒng)顯示的“新 建工程”對話框的“新建”選項 卡中選擇“標(biāo)準(zhǔn)EXE”,然后單 擊“打開”按鈕。 在“文件”菜單中選擇“新建 工程”命令,然后在“新建工程” 對話框中選擇“標(biāo)準(zhǔn)EXE”,然 后單擊“打開”按鈕。 25 2、設(shè)計界面、設(shè)計

12、界面 設(shè)計對象控件的布局 改變Caption屬性的值為“求和” 改變對象標(biāo)簽、命令按鈕Caption 屬性的值 改變文本框的屬性Text為0 窗體 標(biāo)簽 命令按鈕 文本框 26 3、編寫代碼、編寫代碼 三種方式: 在窗體上雙擊命令按 鈕 在工程管理器窗口單 擊“查看代碼”按鈕 在視圖菜單中選擇 “代碼窗口”命令, 或單擊“工具欄”上 的“代碼窗口”按鈕 27 4、運行與調(diào)試工程、運行與調(diào)試工程 選擇“運行”菜單中的“啟動”命令,或單擊工具欄中的“啟 動”按鈕,或按F5鍵,即可運行。 在文本框中輸入數(shù)據(jù),然后 點擊“求和”按鈕,即可得 到兩數(shù)的和,顯示在文本框 中。 計算結(jié)果 28 5、保存工程

13、、保存工程 程序代碼檢查沒有錯誤后,可 保存工程。 選擇“文件”菜單中的“保存 工程”或“工程另存為”命令, 或單擊工具欄中的“保存工程” 按鈕。若是第一次保存,則系 統(tǒng)彈出“文件另存為”對話框。 在“文件對話框”中選擇合適 的文件夾后,點擊“保存”即 可。 文件名 文件夾 文件名后綴 保存窗體文件后,系統(tǒng)會彈出 “工程另存為”對話框,同樣 選擇文件夾,點擊“保存” 29 6、編譯工程形成可執(zhí)行文件、編譯工程形成可執(zhí)行文件 編譯成.exe文件,可脫離VB環(huán) 境運行 選擇“文件”菜單中的“生 成可執(zhí)行文件” ,則系統(tǒng)彈 出“生成工程”對話框。 在“生成文件對話框”中選 擇合適的文件夾,輸入文件

14、名點后,擊“確定”即可。 30 輸入代碼規(guī)則輸入代碼規(guī)則: : 每行不超過每行不超過10231023個字符個字符 一行寫多個語句用一行寫多個語句用“:”:”隔開隔開 可用續(xù)行符可用續(xù)行符“ “ _”_”在下一行接著寫在下一行接著寫 不分大小寫不分大小寫, ,關(guān)鍵字及標(biāo)準(zhǔn)函數(shù)自動處關(guān)鍵字及標(biāo)準(zhǔn)函數(shù)自動處 理成第一母大寫理成第一母大寫 注釋行用注釋行用“”“”開頭開頭 VBVB程序結(jié)構(gòu)程序結(jié)構(gòu): : 窗體模塊窗體模塊 標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊 類模塊類模塊 31 課后分析: 面向?qū)ο蟪绦蛟O(shè)計中對象、屬性、方法、事 件、類等概念的理解隨后續(xù)課程的學(xué)習(xí)而逐漸 加深 32 教學(xué)目的要求: 掌握VB基本數(shù)據(jù)類型

15、掌握VB中的常量與變量 掌握運算符與表達(dá)式 了解常用標(biāo)準(zhǔn)函數(shù) 教學(xué)重點 常量與變量 運算符與表達(dá)式 常用標(biāo)準(zhǔn)函數(shù) 第章 VB程序設(shè)計基礎(chǔ) 33 時間安排: 4學(xué)時 教學(xué)難點: 變量的類型定義 運算符的優(yōu)先級 34 數(shù)據(jù)類型是程序設(shè)計的必要組成部分,也是程 序處理的對象。 在不同語言中,數(shù)據(jù)類型的規(guī)定和處理方法不同。 VB提供系統(tǒng)定義 的數(shù)據(jù)類型 還允許用戶自己 定義 VB提供的基本數(shù)據(jù)類型主要有: 數(shù)值型 字符串型(String) 布爾型(Boolean)邏輯型 日期型(Date) 變體型(Variant) 對象型 (Object) 2.1 數(shù)據(jù)類型 35 類型: 整型(Integer) 長整

16、型(Long) 單精度浮點型(Single) 雙精度浮點型(Double) 貨幣型(Currency) 字節(jié)型(Byte) 2.1.1 數(shù)值型數(shù)據(jù) 36 整型(Integer):以2個字節(jié)的二進制碼存儲。 十進制:由0-9數(shù)字組成和正負(fù)號,取值范圍-32768-32767 八進制:由0-7數(shù)字組成,前面冠以 s End Sub Private Sub Command2_C1ick() angle=Sin(20*pi180) Print angle End Sub 符號常量pi在整個窗體模塊中有效, 符號常量r只 在本事件過程中有效 54 4)由于符號常量可以用其他符號常量定義,因此在兩個 以上

17、符號常量之間不要出現(xiàn)循環(huán)或循環(huán)引用。 例如:在標(biāo)準(zhǔn)模塊Modulel中定義: Public Const conA= conB*2 在整個應(yīng)用程序中有效 在標(biāo)準(zhǔn)模塊Module2中定義: Public Const conB=conA/2 在整個應(yīng)用程序中有效 當(dāng)程序中有兩個以上的公共符號常量,而且每個公 共符號常量都用另一個去定義時就會出現(xiàn)循環(huán)。 出現(xiàn)循環(huán)引用,在運行此應(yīng)用程序時,VB就會產(chǎn) 生錯誤信息。為了避免出現(xiàn)循環(huán)引用,可以將公共 符號常量限制在單一模塊內(nèi),或最多只存在于少數(shù) 幾個模塊內(nèi)。 55 5)符號常量是有意義的名字,它用于取代永遠(yuǎn)不變的 數(shù)值或字符串。 盡管符號常量有點像變量,但不

18、能像對變量那樣修 改符號常量,也不能對符號常量賦以新值。 56 3 系統(tǒng)定義符號常量 符號常量的定義可以從“對象瀏覽器”中獲得。使用對象 瀏覽器可以顯示包括當(dāng)前工程及對象庫在內(nèi)的過程、模塊、類、 屬性和方法等的描述信息。 選擇對象庫 在“類”列表中選擇 所需要的符號常量組 用鼠標(biāo)單擊 某一個符號常量 描述框中顯示有關(guān)該符號常量的定義及描述信息。 例:vbBlue所表示的顏色值為 SomeValue = “ABC”+SomeValue 63 可在窗體模塊或標(biāo)準(zhǔn)模塊的聲明段中加入語句: Option Explicit 強制顯式聲明強制顯式聲明 VB可采用強制聲明功能,使所有變量都必須先聲明后使用.

19、 這樣,若運行時遇到一個未經(jīng)明確聲明的變量名,VB就會 發(fā)出錯誤警告。 聲明方式: 在“工具”菜單中打開“選項”對話框,單擊“編輯器” 選擇“要求變量聲明”選項,即可自動插入 Option Explicit語句. 注:Option Explicit語句的作用范圍僅限于語句所在模塊. 對于需要強制式變量聲明的窗體模塊、標(biāo)準(zhǔn)模塊及類模塊, 必須將Option Explicit語句放在這些模塊的聲明段中。 64 VB中有以下6類運算符和表達(dá)式: 算術(shù)運算符與算術(shù)表達(dá)式 字符串運算符與字符串表達(dá)式 關(guān)系運算符與關(guān)系表達(dá)式 邏輯運算符與邏輯表達(dá)式 日期運算符與日期表達(dá)式 對象運算符與對象表達(dá)式 用運算符

20、將運算對象(或操作數(shù))連接起來即構(gòu)成表達(dá)式。 表達(dá)式表示了某種求值規(guī)則。 操作數(shù)操作數(shù)可以是常量、變量、函數(shù)、對象等,而運算符也 有各種類型。 2.3 運算符與表達(dá)式 65 2.3.1 算術(shù)運算符與算術(shù)表達(dá)式 算術(shù)運算符用于對數(shù)值型數(shù)據(jù)執(zhí)行各種算術(shù)運算。 VB提供了7個算術(shù)運算符,優(yōu)先級次序如表所列: 優(yōu)先級運算符運算 1 乘方 2- 取負(fù) 3 * 乘法 / 浮點除法 4 整數(shù)除法 5Mod 取模 6 + 加法 - 減法 其中,取負(fù)()運算符是單目運算符,其余運算符均為雙目 運算符(需要兩個操作數(shù))。 66 乘方運算用來計算乘方和方根。 例: 102 10的平方,結(jié)果為100 10(-2) 1

21、0的平方的倒數(shù),即1100,結(jié)果為0.01 250.5 25的平方根,結(jié)果為5 8(1/3) 8的立方根,結(jié)果為2 223 運算順序從左到右,結(jié)果為以64 (-8)(-1/3) 錯誤,當(dāng)?shù)讛?shù)為負(fù)數(shù)時,指數(shù)必須是整數(shù) 1乘方運算 2整數(shù)除法 例: 104 結(jié)果為2 25.686.99 先四舍五人再整除,結(jié)果為3 執(zhí)行整除運算,結(jié)果為整型值。參加運算的操作數(shù)一般為 整型數(shù)。當(dāng)操作數(shù)帶有小數(shù)點時,先被四舍五入為整型數(shù) ,后整除。 67 例: 10 Mod 4 結(jié)果為2 25.68 Mod 6.99 先四舍五人再求余數(shù),結(jié)果為5 11 Mod -4 結(jié)果為3 -11 Mod 5 結(jié)果為-1 -11 M

22、od 3 結(jié)果為-2 3.取模運算 取模運算符Mod用于求余數(shù),為第一操作數(shù)整除第二操作 數(shù)所得的余數(shù). 操作數(shù)帶小數(shù), 先四舍五入取整型數(shù),后求余; 運算結(jié)果符號取決于第一個操作數(shù)。 68 注意: “ 若x=0,則產(chǎn)生與最近生成的隨機數(shù)相同的數(shù); 若省略參數(shù)x,則以上一個隨機數(shù)作為種子,產(chǎn)生序列中的下一個隨機數(shù) 產(chǎn)生N1,N2問隨機數(shù),可使用公 式: Int(N2-N1+1)*Rnd +N2 隨機種子生成器:Randomize time 79 2.4.2 字符串函數(shù) VisualBasic提供了大量的字符串函數(shù),具有很強 的字符串處理能力。 1刪除空白字符函數(shù) LTrim(s) 去掉字符串s

23、左邊的空白字符(即前導(dǎo)空格)。 RTrim(s) 去掉字符串s右邊的空白字符(即后置空格)。 Trim(s) 去掉字符串s左右兩邊的空白字符。 例如: LTrim(”UUUABC”) 結(jié)果為“ABC” RTrim(”ABCUUU”) 結(jié)果為“ABC” Trim(”UUUABCUUU”) 結(jié)果為 “ABC” 80 2取子串函數(shù) Left(s,n) 取字符串s左邊的n個字符 Right(s,n) 取字符串s右邊的n個字符 Mid(s,p,n) 從字字符串s的第p個字符開始取n個字符 例: Left(“ABCDE”,2) 結(jié)果為“AB” Right(“ABCDE”,2) 結(jié)果為“DE” Mid(“A

24、BCDE”,2,3) 結(jié)果為“BCD” Mid(“ABCDE”,2,6) 結(jié)果為“BCDE” 3.字符串長度函數(shù) Len(s) 返回字符串s的長度 例: Len(“ABCDE”) 結(jié)果為5 81 5生成空格函數(shù) Space(n) 返回n個空格 例:Space(3)的結(jié)果為“UUU” 4生成字符串函數(shù) String(n,s) 取字符串s的第一個字符構(gòu)成長度為n的新字符串。 例: String(3,”ABC”) 結(jié)果 “AAA” String(3,65) 結(jié)果 “AAA” (字符”A”的ASCII碼為65) 82 7字母大小寫轉(zhuǎn)換函數(shù) UCase(s) 把小寫字母轉(zhuǎn)換為大寫字母。 LCase(s)

25、 把大寫字母轉(zhuǎn)換為小寫字母。 例: UCase(”Abc”) 結(jié)果為ABC” LCase(”ABc”) 結(jié)果為abc” 6搜索予字符串函數(shù) InStr(S,s1,s2,C) 在字符串s1中第S個位置開始 查找字符串s2出現(xiàn)的起始位置 例: InStr(”ABCDE”,”BC”) 結(jié)果為2 1nStr(”ABCDECDE”,”DE”,) 結(jié)果為4 83 轉(zhuǎn)換函數(shù)用于數(shù)據(jù)類型或形式的轉(zhuǎn)換,包括整型、實型、 字符串型之間以及與ASCII碼字符之間的轉(zhuǎn)換。 下面介紹常用的轉(zhuǎn)換函數(shù)。 1將字符轉(zhuǎn)換成ASCII碼 Asc(s) 返回字符串s中第一個字符的ASCII碼。 例: Asc(“A”) 結(jié)果為65

26、Asc(“ABC”) 結(jié)果為65 2.4.4 轉(zhuǎn)換函數(shù) 2將ASCII碼轉(zhuǎn)換成字符 Chr(x) 把x的值轉(zhuǎn)換為對應(yīng)的ASCII字符 例:Chr(65)的結(jié)果為”A”。 84 3將數(shù)值轉(zhuǎn)換成字符串 Str(x) 把x的值轉(zhuǎn)換為一個字符串。 如果x為正,則返回的字符串前有一前導(dǎo)空格。 例:Str(123)的結(jié)果為“ 123”。 4將字符串轉(zhuǎn)換成數(shù)值 Val(s) 把數(shù)字字符串s轉(zhuǎn)換為數(shù)值。 例: Val(“123”) 結(jié)果為123 Val(“123AB”) 結(jié)果為123 Val(“.123AB”) 結(jié)果為.123 Val(”a123AB) 結(jié)果為0 85 5轉(zhuǎn)換成邏輯型數(shù)據(jù) Cbool(x) 非

27、0為True 0為False。 例:Cbool(123)的結(jié)果為True。 6轉(zhuǎn)換成日期型數(shù)據(jù) Cdate(x) 把數(shù)字、字符串轉(zhuǎn)換為日期數(shù)據(jù)。 例: Cdate(“February 20,1999”) 結(jié)果為99-2-20 Cdate(“4:30:40 PM”) 結(jié)果為16:30:40 86 日期和時間函數(shù)可以顯示系統(tǒng)的日期和時間,提供某個 事件何時發(fā)生及持續(xù)時間長短等信息。 常用的日期時間函數(shù)有: Now 返回系統(tǒng)日期和時間 Date 返回系統(tǒng)日期 Time 返回系統(tǒng)時間 Day(d) 返回參數(shù)d中指定月份的第幾天 WeekDay(d) 返回參數(shù)d中指定的星期幾 Month(d) 返回參數(shù)

28、d中指定的月份 Year(d) 返回年份 Hour(d) 返回小時(023) Minute(d) 返回分鐘(059) Second(d) 返回秒(059) Timer 返回從午夜開始到現(xiàn)在經(jīng)過的秒數(shù) 2.4.3 日期和時間函數(shù) 87 格式輸出函數(shù)可以使數(shù)值、日期或字符串按指定的格式輸出。 其格式為 Format(,) 2.4.5 格式輸出函數(shù) :要格式化的數(shù)值、日期或字 符串表達(dá)式。 :指定表達(dá)式的值的輸出 格式。 格式字符有三類:數(shù)值格式、日期格式 和字符串格式。 格式字符要加引號。 88 89 2.4.6 其他函數(shù) 1條件函數(shù) Iif(,) 如x1值為真,則返回x2的值,否則返回x3 例:

29、 Iif(xy,x,y) 返回x,y中較大值 Iif(x=60,“Pass”,”Failure”) 2選擇函數(shù) Choose(n,.) 例:Choose(3,”星期一”,”星期二” ”星期三” ”星期四” ”星 期五”))的結(jié)果為”星期三”。 90 課后分析: 本節(jié)需掌握知識點較多,不需要一下子都記住,以 后用到時逐漸記憶。 91 教學(xué)目的要求: 掌握順序結(jié)構(gòu)程序設(shè)計方法 掌握選擇結(jié)構(gòu)程序設(shè)計方法 掌握循環(huán)結(jié)構(gòu)程序設(shè)計方法 教學(xué)重點 順序、選擇、循環(huán)結(jié)構(gòu)程序設(shè)計 第3章 流程控制 92 時間安排: 6學(xué)時 教學(xué)難點: 循環(huán)結(jié)構(gòu)程序設(shè)計 93 VB采用事件驅(qū)動方法,但仍需要結(jié)構(gòu)化程序設(shè)計 方法,

30、用控制結(jié)構(gòu)控制程序執(zhí)行的流程。 程序流程有三種最基本的結(jié)構(gòu):順序、選擇、循 環(huán)。 一個計算機程序通??煞譃槿糠?,即輸入、處 理和輸出。 VB的輸入輸出有著十分豐富的內(nèi)容和形式,它提 供了多種手段,并可通過各種控件實現(xiàn)輸入輸出操作 ,使輸入輸出更加靈活、多樣、方便、直觀。 3.1.1順序結(jié)構(gòu) 94 功能: 先計算“=”號(稱為賦值號)右邊的表達(dá)式的值,然后將此值 賦給賦值號左邊的變量或?qū)ο髮傩? 說明: 應(yīng)符合VB的變量命名約定。 可以是常量、變量、表達(dá)式及帶有屬性的對象。 格式: Let = 3.1.1 幾個基本語句 1.賦值語句 95 1) “=”賦值號與數(shù)學(xué)中的等號意義不 同。 例如:語

31、句X=X+1表示將變量X的值加1后 的結(jié)果值再賦給變量X,而不是表示兩邊 的值相等. 2) 賦值號左邊必須是變量或?qū)ο髮傩? 例: X=1 MyStr = “Good Morning” Command1.Caption=“確定” X+1=X (錯誤) 注意事項 96 3)變量名或?qū)ο髮傩悦念愋蛻?yīng)與表達(dá)式的類型相容. 即變量名或?qū)ο髮傩悦軌蛘_存取賦值號右邊的表達(dá)式的 值. 例如 Dim A As Integer, B As Single, C As Double, S As String A = 100 S = 123.45“ A = S A=123 S = A S=“123” S = a

32、bc” A = S 錯誤,類型不匹配 97 4)變量未賦值時,數(shù)值型變量的值為0,字符串變量的值為 空串“”。 例4-1交換兩個變量的值。 設(shè)變量A中存放5,變量B中存放8,交換兩個變量 的值,使變量A中存放8,變量B中存放5。 分析:交換變量需要借助第三個變量C,才能實 現(xiàn)交換。 代碼如下: A = 5 B = 8 C = A A = B B = C 98 2. 注釋語句 格式: Rem|注釋內(nèi)容 1)如使用Rem則在Rem與注釋內(nèi)容之間要 加空格;以開頭,可不加 2)允許使用GoTo或GoSub語句轉(zhuǎn)到一個有 行號或標(biāo)號的注釋語句,程序從該注釋 行下面的第一條可執(zhí)行語句繼續(xù)執(zhí)行 3)在其他

33、語句行后使用Rem,用冒號 注意事項: 99 . 停止程序執(zhí)行語句 格式: End 功能:結(jié)束程序的執(zhí)行。 一個程序沒有End語句,對運行沒有什么影響。但如果沒 有End語句,或者雖然有,卻沒執(zhí)行,程序都不能正常結(jié)束 ,此時要結(jié)束程序必須執(zhí)行“運行”菜單中的“結(jié)束”命令 或單擊工具欄中的“結(jié)束”按鈕。為了保持程序的完整性, 應(yīng)當(dāng)在程序中含有End語句,并且通過End語句來結(jié)束程序 的運行。 100 InputBox函數(shù)產(chǎn)生一個對話框,作為輸入數(shù)據(jù)的界面,等待 用戶輸入正文或按下按鈕,并返回所輸入的內(nèi)容。 格式:InputBox(,) 3.1.2 輸入數(shù)據(jù) 1 輸入框函數(shù)(InputBox) 1

34、01 例如,假設(shè)某程序中有如下代碼: MyStr=InputBox(“提示” | , 可以是窗體、圖片框、打印機或立即窗口。如 果省略“對象名”,則在當(dāng)前窗體上輸出。 中的表達(dá)式可以是算術(shù)表達(dá)式、字符串表達(dá) 式、關(guān)系表達(dá)式或者布爾表達(dá)式,多個表達(dá)式之間的分隔 符為逗號(,)或分號(;)。 3. 用Print方法輸出數(shù)據(jù) 1. Print方法 123 例: Form1Print “歡迎使用Visual Basic” 在窗體Forml上顯示字符串“歡迎使用Visual Basic” Picture1Print “歡迎使用Visual Basic” 在圖片框Picturel上顯示字符串“歡迎使用Vi

35、sual Basic” PrinterPrint “歡迎使用Visual Basic” 在打印機上打印字符串“歡迎使用Visual Basic” 124 Print方法具有計算和輸出雙重功能。 對于表達(dá)式,先計算表達(dá)式的值,然后輸出。輸出時,數(shù)值型數(shù) 據(jù)前面有一符號位(正號不顯示),后面留一個空格位;字符串原樣 輸出,前后無空格。 符號位 125 Print方法有兩種顯示格式:區(qū)分格式和緊湊格式。 當(dāng)各表達(dá)式之間用逗號作為分隔符時,則按區(qū)分,顯示數(shù)據(jù)個字為 單位把一個輸出行分成 若干區(qū)個表達(dá)式的值。 當(dāng)各表達(dá)式之間用分號作為分隔符時,則按緊湊格式輸出數(shù)據(jù),后 一項緊跟前一項輸出。 126 一般

36、情況下,每執(zhí)行一次Print方法都要自動換行,即每一次執(zhí)行Print 時,都會在新的一行上輸出數(shù)據(jù)。若要在同一行上輸出數(shù)據(jù),則可以 在末尾加上分號或逗號。 若省略,則輸出一個 空行或取消前面Print末尾的逗號 或分號的作用。 127 2. 與Print方法有關(guān)的函數(shù) 格式: Tab(n) 功能: 在指定的第n個位置 上輸出數(shù)據(jù). 1) Tab函數(shù) 說明: 若n小于當(dāng)前顯示位置, 則自動移到下一個輸出行的第n列上; 若n小于1,則打印位置在第1列; 若n大于輸出行的寬度,則利用公式n Mod width計算下一個打 印位置; 若省略此參數(shù),則將插入點移到下一個打印區(qū)的起點. 128 2) Sp

37、c函數(shù) 格式: Spc(n) 功能: 跳過n個空格. 說明: n是一個數(shù)值表達(dá)式,表示空格. 例如: Print “Hello”; Spc(3); “World” 輸出結(jié)果: HelloUUUWorld Spc函數(shù)與輸出項之間用分號分隔. Spc函數(shù)表示兩個輸出項之間的間隔, Tab函數(shù)總是從對象的左 端開始計數(shù). 129 3.1.4 舉例 例3-3 使用文本框輸入圓的半徑,計算圓的面積并用標(biāo)簽 輸出。運行界面如下圖所示。 Private Sub Command1_Click() Dim r As Double,s As Double Const pi = 3.1415926 r = Val(

38、Text1.Text) s=pi * r * r Label2.Caption = “圓的面積:” Y 當(dāng)X=4時,條件X0成立,執(zhí)行Then之后的語句X=1+X,使X的值成為5,然后執(zhí)行條件 語句之后的語句Y=1+X,使Y的值成為-4,所以輸出Y=-4。 當(dāng)X的值為-4時,條件X=0不成立,執(zhí)行Else之后的語句X=5-X,使X的值成為9,然后 同樣執(zhí)行條件語句之后的語句Y=1-X,使Y的值成為-8,所以輸出Y=-8。 即無論條件X=0是否成立,都要執(zhí)行If語句后面的語句Y=1-X。 3)單行結(jié)構(gòu)條件語句可以嵌套,也就是說,在或中 可以包含另外一個單行結(jié)構(gòu)條件語句。 133 2 塊結(jié)構(gòu)條件語

39、句 格式: If Then ElseIf Then Elself Then Else EndIf 功能:執(zhí)行該塊結(jié)構(gòu)條件語句時,首先判斷是否成立,若成立,則執(zhí)行,若不成立,則繼續(xù)判斷ElseIf子句后的是否成立,若成立,則 執(zhí)行,否則,繼續(xù)判斷以下的各個條件,依此類推。如果到都不成立,則執(zhí)行Else子句后面的。 當(dāng)某個條件成立而執(zhí)行了相應(yīng)的語句組后,將不再繼續(xù)往下判斷其他條件,而 直接退出塊結(jié)構(gòu),執(zhí)行EndIf之后的語句。 條件1 語句組1 條件2 語句組2 條件n 語句組n 其他語句組 134 注意:整個塊結(jié)構(gòu)必須以If語句開頭,EndIf語句結(jié)束。除了第一行的If語句和最 后一行的EndI

40、f語句是必須的以外,ElseIf子句和Else子句都是可選的。 塊結(jié)構(gòu)條件語句的兩種常見的簡化形式: 形式一: If Then Else End If 形式二: If Then End lf 形式一的功能與單行結(jié)構(gòu)條件語句功能相同,用于處理兩個條件分支的情況; 而形式二僅在條件成立時執(zhí)行一定的操作,當(dāng)條件不成立時則不做任何處理。 135 注意: 1)使用塊結(jié)構(gòu)條件語句時,關(guān)鍵字Elself不能寫成 Else If,即中間不能有空格。 2)在書寫時,可以將If語句、ElseIf語句、Else子句和 EndIf語句左對齊,而各語句組向右縮進若干空格,以使 程序結(jié)構(gòu)更加清楚,便于閱讀和查錯。 3)要

41、注意嚴(yán)格按格式要求進行書寫,不可以隨意換行 或?qū)尚泻喜⒊梢恍小?4)塊結(jié)構(gòu)條件語句可以嵌套。 136 格式如下: Select Case Case Case Case Else End Select 3 多分支選擇語句 功能: 根據(jù)的值,按順序匹配Case后的表達(dá)式表,如果匹配成功,則 執(zhí)行該Case下的語句組,然后轉(zhuǎn)到EndSelect語句之后繼續(xù)執(zhí)行;如果的值與各表達(dá)式表都不匹配,則執(zhí)行CaseElse之后的,再 轉(zhuǎn)到EndSelect語句之后繼續(xù)執(zhí)行。 137 可以是任何數(shù)值表達(dá)式或字符表達(dá)式??梢允侨魏螖?shù)值表達(dá)式或字符表達(dá)式。CaseCase后的表達(dá)式表可以后的表達(dá)式表可以 有如下形

42、式之一:有如下形式之一: 1)1) 1 , 2如:如:Case lCase l,3 3,5 5 表示表示 的值為的值為1 1或或3 3或或5 5時將執(zhí)行該時將執(zhí)行該CaseCase語句之后的語句組。語句之后的語句組。 2)2) TO TO 2:Case l0 TO 30Case l0 TO 30 表示表示 的值在的值在1010到到3030之間之間( (包括包括1010和和30)30)時將執(zhí)行該時將執(zhí)行該CaseCase語語 句之后的語句組。句之后的語句組。 3)Is 3)Is :Case Is=10Case Is=10 表示表示 的值大于或等于的值大于或等于1010時將執(zhí)行該時將執(zhí)行該Case

43、Case語句之后的語句語句之后的語句 組。組。 以上三種方式可以同時出現(xiàn)在同一個以上三種方式可以同時出現(xiàn)在同一個CaseCase語句之后,各項之間用逗號語句之后,各項之間用逗號 隔開。隔開。 如:如:Case lCase l,3 3,10 T0 20, Is010 T0 20, Is0 138 0lg 025. 1 0 xx x xee y xx 設(shè)從文本框Textl輸人X的值,單擊命令按鈕Commandl計算Y的值, 結(jié)果顯示于文本Text2中: Private Sub Command1_Click() X=Val(Text1.Text) Select Case X Case Is 0 Y

44、= Log(X)/Log(10) End Select Text2Text=Format(Y, ”0.000000”) 保留6位小數(shù) End Sub 按以下公式求分段函數(shù)y的值 139 注意: 1)的類型應(yīng)與Case后的表達(dá)式類型一致。 2)不可以在Case后的表達(dá)式中使用中的變量。 3)只能是一個變量或表達(dá)式,而不能是變量表或表達(dá)式表。 4)語句也可以嵌套,但每個嵌套的Select Case語句必須要有相應(yīng)的語句。 5)不要在Case后直接使用布爾運算符來表示條件,例如,要表示條件 0X0 And X100 End Select 對于較復(fù)雜的條件,可以用塊If語句來實現(xiàn),而有些條件完全可以轉(zhuǎn)

45、換成 Case語句允許的幾種形式之一. 140 以上三種條件結(jié)構(gòu)都能解決需要多分支處理的問題,但根 據(jù)不同的要求選擇適當(dāng)?shù)慕Y(jié)構(gòu)進行編程,可以簡化編程, 使程序結(jié)構(gòu)更加清楚,便于閱讀和查錯。 對于簡單的兩個分支的情況,使用單行結(jié)構(gòu)條件語句就比 較方便; 使用塊結(jié)構(gòu)條件語句可以處理分支較多,條件較復(fù)雜的情 況;而多分支選擇結(jié)構(gòu)更適合于對單一表達(dá)式進行多種條 件判斷的情況。 編程時,使用條件結(jié)構(gòu)語句尤其要注意兩個問題, 一是條件的書寫, 二是不同語句結(jié)構(gòu)之間的格式區(qū)別。 141 3.2.2舉例 Private Sub Command1_Click() If Text1.Text = 王剛 Then

46、If UCase(Text2.Text) = ABCDE Then MsgBox 口令正確! Else MsgBox 口令錯誤! End End If Else MsgBox 用戶名錯誤! End End If Print Print Spc(20); 歡迎使用! End Sub 142 例例:運費計算運費計算.規(guī)則如下規(guī)則如下: 50km以內(nèi)以內(nèi): 運費運費=運量運量(t)*距離距離(km)*1(元元) 50100km: 運費運費=運量運量(t)*距離距離(km)*0.8(元元) 101300km:運費運費=運量運量(t)*距離距離(km)*0.6(元元) 300km以上以上:運費運費=運量

47、運量(t)*距離距離(km)*0.5(元元) Private Sub Command2_Click() Dim y1, j1, yf As Single y1 = Text1.Text j1 = Text2.Text Select Case j1 Case Is 300 yf = y1 * j1 * 0.5 End Select Text3.Text = CStr(yf) End Sub Private Sub Command1_Click() Text1.Text = Text2.Text = Text3.Text = End Sub Private Sub Command3_Click()

48、 Unload Me End Sub 143 3.3 循環(huán)結(jié)構(gòu)程序設(shè)計 和順序結(jié)構(gòu)、選擇結(jié)構(gòu)一樣,循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序 中的三種基本程序結(jié)構(gòu)之一。在程序中,凡是需要重復(fù) 相同或相似的操作步驟,都可以用循環(huán)結(jié)構(gòu)來實現(xiàn)。 循環(huán)結(jié)構(gòu)由兩部分組成: 循環(huán)體,即要重復(fù)執(zhí)行的語句序列;循環(huán)體,即要重復(fù)執(zhí)行的語句序列; 循環(huán)控制部分,即用于規(guī)定循環(huán)的重復(fù)條件或重復(fù)次循環(huán)控制部分,即用于規(guī)定循環(huán)的重復(fù)條件或重復(fù)次 數(shù),同時確定循環(huán)范圍的語句。數(shù),同時確定循環(huán)范圍的語句。 要使計算機能夠正常執(zhí)行某循環(huán),由循環(huán)控制部分所 規(guī)定的循環(huán)次數(shù)必須是有限的,即循環(huán)體可以重復(fù)0次 到若干次。 3.3.1實現(xiàn)循環(huán)結(jié)構(gòu)的語句

49、144 VB支持的循環(huán)結(jié)構(gòu)有: ForNext循環(huán) DoLoop循環(huán) For EachNext循環(huán) While Wend循環(huán) 本章將介紹ForNext循環(huán)結(jié)構(gòu)和DoLoop循環(huán)結(jié) 構(gòu)。其中ForNext循環(huán)結(jié)構(gòu)常用于設(shè)計已知循環(huán)次數(shù) 的程序,而DoLoop WhileWend循環(huán)結(jié)構(gòu)更適合于 設(shè)計循環(huán)次數(shù)未知,而只知道循環(huán)結(jié)束條件的程序。 For EachNext循環(huán)將在數(shù)組中介紹。 145 1. ForNext循環(huán)語句 在已知循環(huán)要執(zhí)行多少次時,最好使用ForNext循環(huán)。 在ForNext循環(huán)中使用一個起計數(shù)器作用的循環(huán)變量,每 重復(fù)一次循環(huán)之后,循環(huán)變量的值就會按一定的步長增加 或者減少

50、,直到超過某規(guī)定的終值時退出循環(huán)。 格式如下: For = To Step Exit For Next 146 VisualBasic按以下步驟執(zhí)行ForNext循環(huán): 1)首先將設(shè)置為。 2)若為正數(shù),則測試是否大于, 若是,則退出循環(huán),執(zhí)行Next語句之后的語句,否則繼續(xù)下 一步。 若為負(fù)數(shù),則測試是否小于,若 是,則退出循環(huán)Next語句后的語句,否則繼續(xù)下一步。 3)執(zhí)行循環(huán)體部分,即執(zhí)行For語句和Next語句之間的語句 組。 4)的值增加值。 5)返回步驟2)。 147 以下面循環(huán)為例,以框圖形式說明以下面循環(huán)為例,以框圖形式說明For循環(huán)執(zhí)行過程:循環(huán)執(zhí)行過程: For I= to

51、 step 循環(huán)體循環(huán)體 Next I I=e1 I超過終值e2? 循環(huán)體 I=I+e3 N Y 148 說明: 、和都是數(shù)值型的,其 中,、和是必需的。 可正可負(fù),也可以省略。若為正,則 必須小于或等于,否則不能執(zhí)行循環(huán)體內(nèi)的語句;若 為負(fù),則必須大于或等于,否則不能執(zhí) 行循環(huán)體內(nèi)的語句;若省略,則默認(rèn)為1。 Exit For 可選, 語句用于退出循環(huán)體,執(zhí)行Next語句之后的 語句。必要時,循環(huán)體中可以放置多條Exit For語句。該語句 一般放在某條件結(jié)構(gòu)中,用于表示當(dāng)某種條件成立時,強行 退出循環(huán)。 Next語句中的必須與For語句中的一 致,也可以省略。 149 例: 求1+2+3+

52、n的值。 分析: 在程序設(shè)計中,求取一批數(shù)據(jù)的“和”是一種典型的操作 ,通常稱為“累加”。 “累加”問題可以很方便地用循環(huán)來實現(xiàn)。設(shè)計時,一般 引入一個存放和”值的單元,如變量Sum。首先設(shè)置該 “和”值為0,然后通過循環(huán)重復(fù)執(zhí)行: 和值=和值+累加項 即 Sum=Sum+I 程序代碼如下:程序代碼如下: For I =1 to n Sum=Sum+I Next 150 DoLoop循環(huán)結(jié)構(gòu)有幾種演變形式,但每一種都是通過判 斷某條件以決定循環(huán)是否繼續(xù)執(zhí)行。所不同的是,是先判斷 條件后執(zhí)行循環(huán)體,還是先執(zhí)行循環(huán)體后判斷條件;是條件 成立時執(zhí)行循環(huán)(當(dāng)型循環(huán)) ,還是條件不成立時執(zhí)行循環(huán)(直 到

53、型循環(huán)) 。 2. DoLoop循環(huán)語句 Do循環(huán) 當(dāng)型 直到型 前測式 后測式 前測式 后測式 151 格式一 :前測式當(dāng)型循環(huán) Do While Exit Do Loop 格式二:前測式直到型循環(huán) Do Until Exit Do Loop 格式三 :后測式當(dāng)型循環(huán) Do Exit Do Loop While 格式四:后測式直到型循環(huán) Do Exit Do Loop Until DoLoop循環(huán)結(jié)構(gòu)的四種格式 152 四種格式的區(qū)別在于的書寫位置不同,可以寫在 Do語句之后,也可以寫在Loop語句之后,另外,之 前的關(guān)鍵字可以是While,也可以是Until。 使用While時,當(dāng)指定的條

54、件為True時,執(zhí)行循環(huán)體 中的語句組,而當(dāng)條件為False時則退出循環(huán),執(zhí)行循環(huán)終止 語句Loop之后的語句。 使用Until時,當(dāng)指定的條件為False時,執(zhí)行循環(huán)體 中的語句組,而當(dāng)條件為True時則退出循環(huán),執(zhí)行循環(huán)終止 語句Loop之后的語句。 使用While和使用Until的區(qū)別是: While表示當(dāng)條件成立時執(zhí)行循環(huán)體, Until則是在條件不成立時執(zhí)行循環(huán)體。 153 四種格式中,格式一和格式二在循環(huán)的起始語句Do之后判斷 條件,屬于當(dāng)型循環(huán); 格式三和格式四在循環(huán)的終止語句Loop處判斷條件,屬于直到 型循環(huán)。 Exit Do語句用于退出循環(huán)體,執(zhí)行Loop語句之后的語句。必

55、 要時,循環(huán)體中可以放置多條ExitDo語句。該語句一般放在某 條件結(jié)構(gòu)中,用于表示當(dāng)某種條件成立時,強行退出循環(huán) 也可以在Do語句和Loop語句之后都沒有條件判斷,這時循環(huán) 將無條件地重復(fù),因此在這種情況下,在循環(huán)體內(nèi)必須有強行 退出循環(huán)的語句,如Exit Do語句,以保證循環(huán)在執(zhí)行有限次數(shù) 后退出。 154 例:從鍵盤輸入一正整數(shù),判斷是否是素數(shù)。 輸入值 K=int(sqr(n) I=2 Flag=0 I=k且Flag=0? N能被整除嗎? Flag=1 I=I+1 Flag=0? 打印不是素數(shù) 打印是素數(shù) 結(jié)束 開始 程序代碼如下: Input “n=”;n k=int(sqr(n)

56、I=2 flag=0 do while I=k and flag=0 if n mod I=0 then flag=1 else I=I+1 end if loop if flag=0 then print n;”is a prime number.” else print n;”is not a prime number.” end if 155 3. WhileWend循環(huán)語句 格式如下: While Wend 功能:當(dāng)條件為True時,反復(fù)執(zhí)行循環(huán),為False 時退出循環(huán)。 156 通常,把循環(huán)體內(nèi)不再包含其他循環(huán)的循環(huán)結(jié)構(gòu)叫做單層 循環(huán)。在處理某些問題時,常常要在循環(huán)體內(nèi)再進行循環(huán)操

57、 作,而在內(nèi)嵌的循環(huán)中還可以再包含循環(huán),這種情況叫多重 循環(huán),又稱為循環(huán)的嵌套。 VB對循環(huán)的嵌套層數(shù)沒有限制,當(dāng)循環(huán)的層數(shù)太多時,程 序的可讀性會下降。 習(xí)慣上,為了使循環(huán)結(jié)構(gòu)更具可讀性,總是用縮排的方式 書寫循環(huán)體部分。 4. 循環(huán)的嵌套 157 多層循環(huán)的執(zhí)行過程是,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán) 就要從頭開始執(zhí)行一輪。 如: For I=1 To 9 For J=1 To 9 Print I; ”*”;J;“=”;I*J Next J Next I 在以上的雙重循環(huán)中,外層循環(huán)變量I取1時,內(nèi)層循環(huán)就 要執(zhí)行9次(J依次取1、2、3、9),接著,外層循環(huán)變量 I=2,內(nèi)層循環(huán)同樣要重新執(zhí)

58、行9次(J再依次取1、2、3、 9),所以循環(huán)共執(zhí)行81次。 158 同類循環(huán)可以嵌套,F(xiàn)orNext循環(huán)和DoLoop循環(huán)也可 以互相嵌套。嵌套時,內(nèi)層循環(huán)必須完全嵌套在外層循環(huán)之 內(nèi)。例如,以下的嵌套都是允許的 For I=1 To 10 For J=1 To 20 Next J Next I Do For J=1 To 20 Next J Loop While I=10 For I=1 To 10 Do While J=20 Loop Next I Do Do While J10 159 交叉是不允許的 For I=1 To 10 For J=1 To 20 Next I Next J

59、Do For J=1 To 20 Loop While I=10 Next J For I=1 To 10 Do While J1000 Then Exit For Next J Print I; J; F F=1 Next I F=1 Do While I1000 Then Exit Do Next J Print F F=1 I=I+1 Loop Print F 162 3.3.2 舉例 例1:打印九九乘法口訣表 程序如下: Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 9 For j = 1 To

60、 9 Print i; *; j; =; Format(i * j, ); Next j Print Next i End Sub 163 若打印格式改進如下: 程序修改如下: Private Sub Form_Click() Dim i As Integer, j As Integer For i = 1 To 9 For j = 1 To i Print i; *; j; =; Format(i * j, ); Next j Print Next i End Sub 164 若打印格式修改如下: 程序修改如下: Private Sub Form_Click() Dim i As Integ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論