第3章程序設(shè)計(jì)的3種基本結(jié)構(gòu)_第1頁
第3章程序設(shè)計(jì)的3種基本結(jié)構(gòu)_第2頁
第3章程序設(shè)計(jì)的3種基本結(jié)構(gòu)_第3頁
第3章程序設(shè)計(jì)的3種基本結(jié)構(gòu)_第4頁
第3章程序設(shè)計(jì)的3種基本結(jié)構(gòu)_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 1第第3章章 程序設(shè)計(jì)的程序設(shè)計(jì)的3種基本結(jié)構(gòu)種基本結(jié)構(gòu) 本章內(nèi)容及要求:本章內(nèi)容及要求: (1)了解算法概念及表示,掌握用)了解算法概念及表示,掌握用NS流程圖表示算法;流程圖表示算法; ( 2)熟練掌握賦值語句、輸入)熟練掌握賦值語句、輸入/輸出消息框函數(shù)的使用;輸出消息框函數(shù)的使用; ( 3)熟練掌握行)熟練掌握行ifif語句、塊語句、塊ifif結(jié)構(gòu)、結(jié)構(gòu)、Select CaseSelect Case情況選情況選擇結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu);擇結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu); (4)熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的)熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的For/NextFor/

2、Next循環(huán)結(jié)構(gòu)及循環(huán)結(jié)構(gòu)及Exit Exit ForFor語句、語句、Do/LoopDo/Loop循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán);循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán); (5 5)能夠運(yùn)用)能夠運(yùn)用3 3種結(jié)構(gòu)進(jìn)行綜合程序設(shè)計(jì)。種結(jié)構(gòu)進(jìn)行綜合程序設(shè)計(jì)。 重點(diǎn):重點(diǎn):選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用難點(diǎn):難點(diǎn):算法設(shè)計(jì)、選擇的嵌套及多重循環(huán)結(jié)構(gòu)算法設(shè)計(jì)、選擇的嵌套及多重循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 23.1 算法及算法的表示算法及算法的表示 3.1.1 算法概述算法概述 什么是算法:什么是算法: 廣義地講:廣義地講:算法是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的算法是為完成一

3、項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的一步一一步一步的規(guī)則的、精確的、無歧義的描述,步的規(guī)則的、精確的、無歧義的描述,它的總步數(shù)是有限的。它的總步數(shù)是有限的。 狹義地講:狹義地講:算法是解決一個(gè)問題采取的方法和步驟的描述。算法是解決一個(gè)問題采取的方法和步驟的描述。下面通過兩個(gè)簡單的例子加以說明:下面通過兩個(gè)簡單的例子加以說明:第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 31) 輸入輸入A、B、C。2) A與與B中大的一個(gè)放入中大的一個(gè)放入MAX中。中。3) 把把C與與MAX中大的一個(gè)放入中大的一個(gè)放入MAX中。中。4) 輸出輸出MAX,MAX即為最大數(shù)。即為最大數(shù)。例例3.1 輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。輸入三個(gè)數(shù),然

4、后輸出其中最大的數(shù)。 將三個(gè)數(shù)依次輸入到變量、將三個(gè)數(shù)依次輸入到變量、B、C中,設(shè)變量中,設(shè)變量MAX存放存放最大數(shù)。其算法如下:最大數(shù)。其算法如下: 3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 4例例3.2 輸入輸入10個(gè)數(shù),打印輸出其中最大的數(shù)。個(gè)數(shù),打印輸出其中最大的數(shù)。算法設(shè)計(jì)如下:算法設(shè)計(jì)如下: (1)輸入)輸入1個(gè)數(shù)個(gè)數(shù),存入變量存入變量A中中,將記錄數(shù)據(jù)個(gè)數(shù)的變量將記錄數(shù)據(jù)個(gè)數(shù)的變量N賦賦值為值為1,即,即N=1 (2)將)將A存入表示最大值的變量存入表示最大值的變量Max中,即中,即Max=A (3)再輸入一個(gè)值給)再輸入一個(gè)值給A,如果,如果AM

5、ax 則則 Max=A, 否則否則Max不變不變 (4)讓記錄數(shù)據(jù)個(gè)數(shù)的變量增加)讓記錄數(shù)據(jù)個(gè)數(shù)的變量增加1,即,即N=N+1 (5)判斷)判斷N是否小于是否小于10,若成立則轉(zhuǎn)到第(,若成立則轉(zhuǎn)到第(3)步執(zhí)行,否)步執(zhí)行,否則轉(zhuǎn)到第(則轉(zhuǎn)到第(6)步)步 (6)打印輸出)打印輸出max3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 53.1.2 算法的特性算法的特性 1 有窮性有窮性2 確定性確定性3 有有0個(gè)或多個(gè)輸入個(gè)或多個(gè)輸入4 有一個(gè)或多個(gè)輸出有一個(gè)或多個(gè)輸出5 有效性有效性3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 63.1

6、.3 算法的表示算法的表示 一、自然語言與偽代碼表示算法一、自然語言與偽代碼表示算法自然語言:自然語言:就是指人們?nèi)粘J褂玫恼Z言,可以是漢語、英就是指人們?nèi)粘J褂玫恼Z言,可以是漢語、英語或其它語言。語或其它語言。偽代碼:偽代碼:是用介于自然語言和計(jì)算機(jī)語言之間的文字和符是用介于自然語言和計(jì)算機(jī)語言之間的文字和符號(hào)(包括數(shù)學(xué)符號(hào))來描述算法。號(hào)(包括數(shù)學(xué)符號(hào))來描述算法。 3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 7例如:例例如:例3.1可用如下的偽代碼表示可用如下的偽代碼表示Begin(算法開始)(算法開始) 輸入輸入 A,B,C IF AB 則則 AMax 否

7、則否則 BMax IF CMax 則則 CMaxPrint MaxEnd (算法結(jié)束算法結(jié)束)3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 8二二 用用傳統(tǒng)傳統(tǒng)流程圖表示算法流程圖表示算法處理框起止框I/O框判斷框流程線1、傳統(tǒng)流程圖中的基本符號(hào)、傳統(tǒng)流程圖中的基本符號(hào)3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 92、三種基本結(jié)構(gòu)的表示、三種基本結(jié)構(gòu)的表示(1)順序結(jié)構(gòu))順序結(jié)構(gòu)條件語句1語句2YN語句1語句2(2)選擇結(jié)構(gòu))選擇結(jié)構(gòu)3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 10(3)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu)a

8、) 當(dāng)型循環(huán)當(dāng)型循環(huán)b) 直到循環(huán)直到循環(huán)條件語句組YN( b )條件( a )YN語句組3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 11三種基本結(jié)構(gòu)的特點(diǎn):三種基本結(jié)構(gòu)的特點(diǎn):(1)只有一個(gè)入口)只有一個(gè)入口(2)只有一個(gè)出口)只有一個(gè)出口(3)不存在死語句)不存在死語句(4)不存在死循環(huán))不存在死循環(huán)例:例: 例例3.2輸入輸入10個(gè)數(shù),打印輸出其中的最大的數(shù)的流程圖個(gè)數(shù),打印輸出其中的最大的數(shù)的流程圖3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 12 從從10個(gè)數(shù)中選出最大的數(shù)個(gè)數(shù)中選出最大的數(shù)的算法流程圖的算法流程圖NMaxMa

9、x =A輸入A開始再輸入給AN=N+1打印Max結(jié)束YNNY3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 133.1.4 用用NS流程圖表示算法流程圖表示算法 將全部算法寫在一個(gè)矩形框內(nèi),在矩形內(nèi)還可包含其將全部算法寫在一個(gè)矩形框內(nèi),在矩形內(nèi)還可包含其它從屬于它的框它從屬于它的框三種基本結(jié)構(gòu)的三種基本結(jié)構(gòu)的NS圖表示:圖表示:語句A語句B語句A語句B條件YN1、順序結(jié)構(gòu)、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)、選擇結(jié)構(gòu)3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 14(3)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu)a) 當(dāng)型循環(huán)當(dāng)型循環(huán)b) 直到循環(huán)直到循環(huán)例:例: 畫出從畫出從

10、10個(gè)數(shù)中選出最大的數(shù)的個(gè)數(shù)中選出最大的數(shù)的NS 流程圖流程圖語句組當(dāng)條件成立( a )語句組直到當(dāng)條件成立( b )3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 15傳統(tǒng)流程圖NMaxMax =A輸入A開始再輸入給AN=N+1打印Max結(jié)束YNNY輸入A當(dāng)NMaxYN輸入A3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 16Private Sub Form_Click() Dim a%, max%, i% a = Val(InputBox(A=?) max = a For i = 2 To 10 a = Val(InputBox(A=?)

11、 If a max Then max = a Next i Print Max=; maxEnd Sub下面是例下面是例3.2的計(jì)算機(jī)的計(jì)算機(jī) 程序,即為用計(jì)算機(jī)語言表示算法:程序,即為用計(jì)算機(jī)語言表示算法:3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 173.1.6 結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)(一)、用計(jì)算機(jī)解決問題的過程(一)、用計(jì)算機(jī)解決問題的過程提出、分提出、分析問題析問題確定算確定算法模型法模型設(shè)計(jì)設(shè)計(jì)算法算法編寫編寫程序程序調(diào)試調(diào)試程序程序分析輸分析輸出結(jié)果出結(jié)果正確正確合理合理結(jié)束結(jié)束不正確不正確3.1 算法及算法的表示算法及

12、算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 18(二)、結(jié)構(gòu)化程序設(shè)計(jì)思想(二)、結(jié)構(gòu)化程序設(shè)計(jì)思想自頂向下、逐步細(xì)化、模塊化自頂向下、逐步細(xì)化、模塊化自頂向下:自頂向下:先從全局、整體設(shè)計(jì)先從全局、整體設(shè)計(jì)逐步細(xì)化:逐步細(xì)化:將一個(gè)問題分解成幾個(gè)較小的問題解決將一個(gè)問題分解成幾個(gè)較小的問題解決模塊化:模塊化: 將一個(gè)大任務(wù)分解成若干個(gè)較小的部分,將一個(gè)大任務(wù)分解成若干個(gè)較小的部分, 每每 個(gè)部分承擔(dān)一定功能,稱為個(gè)部分承擔(dān)一定功能,稱為“功能模功能模塊塊”例:給例:給100個(gè)整數(shù),打印輸出其中的素?cái)?shù)個(gè)整數(shù),打印輸出其中的素?cái)?shù)3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本

13、結(jié)構(gòu) 19S1NS流程圖流程圖輸入輸入100個(gè)數(shù)存入個(gè)數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x2,x100中的非素變?yōu)橹械姆撬刈優(yōu)?S3S2輸入輸入xi當(dāng)當(dāng)i=100i=i+1i=1S1細(xì)化細(xì)化xi0當(dāng)當(dāng)i=100i=i+1i=1YN打印打印xiS3細(xì)化細(xì)化3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 20S1NS流程圖流程圖輸入輸入100個(gè)數(shù)存入個(gè)數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x100中的中的非素變?yōu)榉撬刈優(yōu)?S3S2S2細(xì)化細(xì)化判斷判斷xi是否是素?cái)?shù),是否是素?cái)?shù),

14、若不是則將若不是則將xi=0當(dāng)當(dāng)i=100i=i+1i=1S21r=0rxi/2S21細(xì)化細(xì)化3.1 算法及算法的表示算法及算法的表示 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 21輸入輸入100個(gè)數(shù)存入個(gè)數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x100中中的非素變?yōu)榈姆撬刈優(yōu)?細(xì)化后的流程圖細(xì)化后的流程圖輸入輸入xi當(dāng)當(dāng)i=100i=i+1i=1當(dāng)當(dāng)ixi/2i=i+1xi0當(dāng)當(dāng)i=100i=1YN打印打印xii=i+1第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 223.2 順序結(jié)構(gòu)順序結(jié)構(gòu)3.2.1 3.2.1 賦值語句賦值語句 形式形式: : 變量名表達(dá)式變量名表達(dá)

15、式 對象對象.屬性表達(dá)式屬性表達(dá)式 功能:功能: 將表達(dá)式的值賦值給變量名或指定對象的屬性。將表達(dá)式的值賦值給變量名或指定對象的屬性。 一般用于給變量賦值或?qū)丶O(shè)定屬性值一般用于給變量賦值或?qū)丶O(shè)定屬性值. 例:例: sRate!=0.1 Text1.Text 歡迎使用歡迎使用Visual Basic 6.0”說明:說明: 1 執(zhí)行過程:先求表達(dá)式的值,然后將值賦值給左邊的變量執(zhí)行過程:先求表達(dá)式的值,然后將值賦值給左邊的變量。 2 右邊的表達(dá)式可以是變量、常量、函數(shù)調(diào)用等特殊的表達(dá)式。右邊的表達(dá)式可以是變量、常量、函數(shù)調(diào)用等特殊的表達(dá)式。 3 不要將不要將“”理解為數(shù)學(xué)上的等號(hào):理解為數(shù)

16、學(xué)上的等號(hào): A=A+1 是表示將是表示將A單元的值加后以放回到單元的值加后以放回到A單元。單元。第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 23執(zhí)行過程如右圖執(zhí)行過程如右圖3.賦值符號(hào)賦值符號(hào)“=”左邊一定只能是變量名或?qū)ο蟮膶傩砸筮呉欢ㄖ荒苁亲兞棵驅(qū)ο蟮膶傩砸?,不能是常量、符?hào)常量、表達(dá)式。用,不能是常量、符號(hào)常量、表達(dá)式。 下面的賦值語句都是錯(cuò)的:下面的賦值語句都是錯(cuò)的:5=X 左邊是常量。左邊是常量。Abs(X)=20 左邊是函數(shù)調(diào)用,即是表達(dá)式。左邊是函數(shù)調(diào)用,即是表達(dá)式。 5. 賦值符號(hào)賦值符號(hào)“=”兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。 3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第

17、3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 243.2.2 數(shù)據(jù)的輸出數(shù)據(jù)的輸出Print方法方法 Print方法的一般格式:方法的一般格式: 對象名對象名.Print,|;說明:說明: 對象名對象名. 可以是窗體名、圖片框名,也可是立即窗口可以是窗體名、圖片框名,也可是立即窗口“Debug”。若省略對象,則表示在當(dāng)前窗體上輸出。若省略對象,則表示在當(dāng)前窗體上輸出。 用用Print方法在圖片框和立即窗口對象中輸出與在窗體方法在圖片框和立即窗口對象中輸出與在窗體對象中輸出完全相同。對象中輸出完全相同。 3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 253.2.3 用戶交互函數(shù)和過程用戶交互函數(shù)和過程

18、 1. InputBox函數(shù)函數(shù)變量名變量名=InputBox$(, , ) 其中其中:提示提示 提示信息提示信息,標(biāo)題標(biāo)題 標(biāo)題區(qū)顯示標(biāo)題區(qū)顯示,缺省缺省輸入?yún)^(qū)缺省值。輸入?yún)^(qū)缺省值。例如,要在屏幕上顯示如下的對話框例如,要在屏幕上顯示如下的對話框:3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 26 例如:有下列語句如下例如:有下列語句如下: Dim x% x= Val(InputBox(“請輸入一個(gè)數(shù)請輸入一個(gè)數(shù)”, “輸入框輸入框”, 100) 語句執(zhí)行后打開如下對話框。語句執(zhí)行后打開如下對話框。缺省值標(biāo)題提示3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 272. Ms

19、gBox函數(shù)和函數(shù)和MsgBox過程過程 函數(shù)形式函數(shù)形式: 變量變量% = MsgBox(提示提示,按鈕按鈕圖標(biāo)圖標(biāo)+ 缺省按鈕缺省按鈕+模式模式,標(biāo)題,標(biāo)題) 過程形式過程形式: MsgBox 提示提示,按鈕按鈕圖標(biāo)圖標(biāo) +缺省按鈕缺省按鈕+ 模式模式,標(biāo)題標(biāo)題圖標(biāo)標(biāo)題提示信息命令按鈕3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 28說明:說明: “標(biāo)題標(biāo)題”和和“提示提示”與與InputBox函數(shù)中對應(yīng)的參數(shù)相同;函數(shù)中對應(yīng)的參數(shù)相同; “按鈕圖標(biāo)按鈕圖標(biāo) +缺省按鈕缺省按鈕+模式模式”是整型表達(dá)式,決定是整型表達(dá)式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式信息框

20、按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式(見見表表3.1) 若程序中需要返回值,則使用函數(shù),否則可調(diào)用過程。若程序中需要返回值,則使用函數(shù),否則可調(diào)用過程。 3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 29按鈕及圖標(biāo)值如下按鈕及圖標(biāo)值如下:根據(jù)用戶所選按鈕,函數(shù)返根據(jù)用戶所選按鈕,函數(shù)返回回1 17 7的整數(shù)值,其含義的整數(shù)值,其含義如下表如下表: :(表(表3-2)3-2)3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 303.2.4 注釋語句注釋語句 其語法格式為:其語法格式為:Rem 或或 說明:說明:1. 指要包括的任何注釋文本。在指要包括的任何注釋文本。在Re

21、m關(guān)鍵字關(guān)鍵字和注釋內(nèi)容之間要加一個(gè)空格。可以用一個(gè)英文單引號(hào)和注釋內(nèi)容之間要加一個(gè)空格。可以用一個(gè)英文單引號(hào)“”來來代替代替Rem關(guān)鍵字。關(guān)鍵字。2. 如果在其他語句行后面使用如果在其他語句行后面使用Rem關(guān)鍵字,必需用冒號(hào)關(guān)鍵字,必需用冒號(hào)(:)與語句隔開。若用英文單引號(hào)與語句隔開。若用英文單引號(hào)“”,則在其他語句行后面,則在其他語句行后面不必加冒號(hào)不必加冒號(hào)(:)。例如:例如:Const PI=3.1415925 符號(hào)常量符號(hào)常量PIS=PI*r*r : Rem計(jì)算圓的面積計(jì)算圓的面積3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 313.2.5 應(yīng)用舉例應(yīng)用舉例 例例3.3 輸

22、入時(shí)間(小時(shí),分和秒),然后使用輸出消息輸入時(shí)間(小時(shí),分和秒),然后使用輸出消息框輸出總計(jì)多少秒。框輸出總計(jì)多少秒。使用文本框輸入數(shù)據(jù),使用消息框輸出計(jì)算結(jié)果,程序使用文本框輸入數(shù)據(jù),使用消息框輸出計(jì)算結(jié)果,程序運(yùn)行界面如圖運(yùn)行界面如圖3-14所示。所示。3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)圖圖3-14 程序運(yùn)行界面程序運(yùn)行界面第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 323.2.5 應(yīng)用舉例應(yīng)用舉例例例3.4 編一程序,求一內(nèi)半徑編一程序,求一內(nèi)半徑R1=10cm,外半徑,外半徑R2=20cm的球環(huán)的體積。要求按四舍五入保留到小數(shù)點(diǎn)后的球環(huán)的體積。要求按四舍五入保留到小數(shù)點(diǎn)后4位。位。解:球的體積公式解:球的體

23、積公式 :本題所求的球環(huán)面的體積公式本題所求的球環(huán)面的體積公式 :3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)334RV)(34343431323132RRRRV第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 33 選擇結(jié)構(gòu)是根據(jù)條件選擇執(zhí)行不同的分支語句,以完成選擇結(jié)構(gòu)是根據(jù)條件選擇執(zhí)行不同的分支語句,以完成問題的要求。在問題的要求。在Visual Basic程序設(shè)計(jì)中,使用程序設(shè)計(jì)中,使用IF語句和語句和Select Case語句來處理選擇結(jié)構(gòu)。其特點(diǎn)是:根據(jù)所給定的語句來處理選擇結(jié)構(gòu)。其特點(diǎn)是:根據(jù)所給定的條件成立(條件成立(True)或不成立()或不成立(False),從各實(shí)際可能的不同),從各實(shí)際可能的不同分支中執(zhí)行某

24、一分支的相應(yīng)操作(程序塊),并且任何情況分支中執(zhí)行某一分支的相應(yīng)操作(程序塊),并且任何情況下總有下總有“無論條件多寡,必?fù)衿湟唬浑m然條件眾多,僅選其無論條件多寡,必?fù)衿湟?;雖然條件眾多,僅選其一一”的特性。的特性。 3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)3.3.1 If條件語句條件語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 341. IfThen語句語句(單分支結(jié)構(gòu)單分支結(jié)構(gòu)) If Then 語句塊語句塊 End If 或或 If Then tyx例例:已知兩個(gè)數(shù)已知兩個(gè)數(shù)x和和y,比較它們的大小,比較它們的大小, 使得使得x大于大于y. If xy Then t=x : x=y: y=t End If 或或

25、 If xy Then t=x: x=y: y=t 3.3.1 If條件語句條件語句第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 352. IfThenElse語句語句(雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)) If Then Else End If If Then Else 雙分支選擇結(jié)構(gòu)執(zhí)行過程雙分支選擇結(jié)構(gòu)執(zhí)行過程 3.3.1 If條件語句條件語句第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 36例如:輸出例如:輸出x,y兩個(gè)中值較大的一個(gè)值。兩個(gè)中值較大的一個(gè)值。IF XY Then Print XElse Print YEnd If也可以寫成如下的單行形式:也可以寫成如下的單行形式: IF XY Then Print X Els

26、e Print Y 3.3.1 If條件語句條件語句第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 37 例例3.5 設(shè)計(jì)一個(gè)求解一元二次方程的程序,要求考慮實(shí)設(shè)計(jì)一個(gè)求解一元二次方程的程序,要求考慮實(shí)根、虛根等情況。根、虛根等情況。算法分析:算法分析:(1)一元二次方程根的計(jì)算公式:)一元二次方程根的計(jì)算公式:(2)求解首先要輸入方程的系數(shù))求解首先要輸入方程的系數(shù)a,b,c,計(jì)算的值,由其值是,計(jì)算的值,由其值是否大于等于零來決定是實(shí)根還是虛根。否大于等于零來決定是實(shí)根還是虛根。 3.3.1 If條件語句條件語句aacbbX2422, 1第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 383. 條件函數(shù)條件函數(shù)Iif()

27、 IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它相當(dāng)于函數(shù)可用來執(zhí)行簡單的條件判斷操作,它相當(dāng)于IFThen.Else結(jié)構(gòu)。結(jié)構(gòu)。IIF函數(shù)的使用格式:函數(shù)的使用格式:IIF(,)說明:說明: (1)與與IF語句中的表達(dá)式相同,通常是關(guān)系表語句中的表達(dá)式相同,通常是關(guān)系表達(dá)式、邏輯表達(dá)式,也可為算術(shù)表達(dá)式。如果是算術(shù)表達(dá)式,達(dá)式、邏輯表達(dá)式,也可為算術(shù)表達(dá)式。如果是算術(shù)表達(dá)式,其值按非其值按非0為為True,0為為False進(jìn)行判斷。進(jìn)行判斷。 (2)當(dāng))當(dāng)為真時(shí),函數(shù)返回為真時(shí),函數(shù)返回的值,當(dāng)?shù)闹?,?dāng)為假時(shí),函數(shù)返回為假時(shí),函數(shù)返回的值。的值。 (3)、可以是任何表達(dá)式??梢允侨魏伪磉_(dá)式。例如

28、:例如:Max=IIF(XY, X, Y )它與下面語句等價(jià):)它與下面語句等價(jià): IF XY Then Max=x Else Max=Y 3.3.1 If條件語句條件語句第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 394. IfThenElseIf語句語句(多分支結(jié)構(gòu)多分支結(jié)構(gòu)) 形式形式: If Then ElseIf Then Else 語句塊語句塊 n+1 End If執(zhí)行過程 3.3.1 If條件語句條件語句第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 40使用使用IF語句實(shí)現(xiàn)的程序段如下:語句實(shí)現(xiàn)的程序段如下:If x=90 then Print 優(yōu)秀優(yōu)秀ElseIf x=80 Then Print 良好良

29、好 ElseIf x=70 Then Print 中等中等 ElseIf x=60 Then Print 及格及格 Else Print 不及格不及格End If 例例3.6 輸入一學(xué)生成績,評定其等級。方法是:輸入一學(xué)生成績,評定其等級。方法是:90100分分為為“優(yōu)秀優(yōu)秀”,8089分為分為“良好良好”,7079分為分為“中等中等”,6069分為分為“及格及格”,60分以為分以為“不合格不合格” 3.3.1 If條件語句條件語句第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 413.3.2 Select Case語句(情況語句)語句(情況語句)形式:形式:Select Case 變量或表達(dá)式變量或表達(dá)式C

30、ase 表達(dá)式列表表達(dá)式列表1語句塊語句塊1Case 表達(dá)式列表表達(dá)式列表2語句塊語句塊2Case Else語句塊語句塊n+1End Select數(shù)值型或字符串表達(dá)式3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 42 說明:說明: :與:與同類型的同類型的下面四種形式之一:下面四種形式之一: 表達(dá)式表達(dá)式 A +5 一組枚舉表達(dá)式一組枚舉表達(dá)式(用逗號(hào)分隔用逗號(hào)分隔) 2, 4, 6, 8 表達(dá)式表達(dá)式1 To 表達(dá)式表達(dá)式2 60 to 100 Is 關(guān)系運(yùn)算符表達(dá)式關(guān)系運(yùn)算符表達(dá)式 Is 603.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 43例如:將例例如:將例3.3

31、使用使用select case.語句來實(shí)現(xiàn)的程序段如下:語句來實(shí)現(xiàn)的程序段如下:Select Case x Case 90 to 100 Print 優(yōu)秀優(yōu)秀 Case 80 to 89 Print 良好良好 Case 70 to 79 Print 中等中等 Case 60 to 69 Print 及格及格 Case Else Print 不及格不及格End Select3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 442. Choose函數(shù)函數(shù)Choose函數(shù)使用格式:函數(shù)使用格式:Choose(,. )說明:說明: Choose函數(shù)根據(jù)函數(shù)根據(jù)的值來決定返回其后的值來決定返回其后

32、中的那個(gè)表達(dá)式的值。如果中的那個(gè)表達(dá)式的值。如果的值為的值為1,則,則返回返回的值,如果的值,如果的值為的值為2,則返回,則返回的值,以此類推。若的值,以此類推。若的值小于的值小于1或大于或大于n,則函數(shù)返回則函數(shù)返回Null。例如:根據(jù)例如:根據(jù)Nop的值,得到的值,得到+、-、*,/的運(yùn)算符,可由理面語的運(yùn)算符,可由理面語句來實(shí)現(xiàn)。句來實(shí)現(xiàn)。Nop= Int(Rnd * 4)+ 1OP= Choose(Nop, +, -, *, /)3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 453.3.3 選擇結(jié)構(gòu)的嵌套選擇結(jié)構(gòu)的嵌套下面是兩種正確的嵌套形式:(1) IF Then . IF

33、 Then Else . End If . Else . IF Then . Else . End If . End IF(2)IF Then . Select Case Case IF Then Else . End If Case. . End Select .End IF3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 46 注意:只要在一個(gè)分支內(nèi)嵌套,不出現(xiàn)交叉,滿足結(jié)構(gòu)規(guī)注意:只要在一個(gè)分支內(nèi)嵌套,不出現(xiàn)交叉,滿足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套層次也可以任意多。對則,其嵌套的形式將有很多種,嵌套層次也可以任意多。對于多層于多層IF嵌套結(jié)構(gòu)中,要特別注意嵌套結(jié)構(gòu)中,要特別

34、注意IF與與Else的配對關(guān)系,一個(gè)的配對關(guān)系,一個(gè)Else必須與必須與IF配結(jié),配對的原則是:在寫含有多層嵌套的程序配結(jié),配對的原則是:在寫含有多層嵌套的程序時(shí),建議使用縮進(jìn)對齊方式,這樣容易閱讀和維護(hù)。時(shí),建議使用縮進(jìn)對齊方式,這樣容易閱讀和維護(hù)。例例3.7 設(shè)計(jì)一個(gè)用戶身份驗(yàn)證程序,運(yùn)行界面如下圖所示。 3.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 47 循環(huán)結(jié)構(gòu)是一種重復(fù)執(zhí)行的程序結(jié)構(gòu)。它判斷給定的條件,循環(huán)結(jié)構(gòu)是一種重復(fù)執(zhí)行的程序結(jié)構(gòu)。它判斷給定的條件,如果條件成立,即為如果條件成立,即為“真真”(True),則重復(fù)執(zhí)行某一些語句),則重復(fù)執(zhí)行某一些語句(稱為循環(huán)體);否則

35、,即為(稱為循環(huán)體);否則,即為“假假”(False),則結(jié)束循環(huán)。),則結(jié)束循環(huán)。通常循環(huán)結(jié)構(gòu)有通常循環(huán)結(jié)構(gòu)有“當(dāng)型循環(huán)當(dāng)型循環(huán)”(先判斷條件,后執(zhí)行循環(huán))和(先判斷條件,后執(zhí)行循環(huán))和“直到型循環(huán)直到型循環(huán)”(先執(zhí)行循環(huán),再判斷條件)兩種。在(先執(zhí)行循環(huán),再判斷條件)兩種。在Visual Basic中,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句主要有中,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句主要有4種:種: ForNext語句語句 Do While/UntilLoop DoLoop While/Until語句語句 WhileWend語句語句3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 483.4.1 For3.4.1 Fo

36、rNextNext循環(huán)語句循環(huán)語句 For循環(huán)語句循環(huán)語句 (一般用于循環(huán)次數(shù)已知一般用于循環(huán)次數(shù)已知)形式:形式: For 循環(huán)變量初值循環(huán)變量初值 to 終值終值 Step 步長步長 語句塊語句塊Exit For 語句塊語句塊 Next 循環(huán)變量循環(huán)變量 循環(huán)變量在終值內(nèi) 語句塊 Exit For 語句塊 循環(huán)變量加步長 T F 循 環(huán) 變 量 得 初值 循環(huán)體 0 初值初值終值終值 =1 時(shí)時(shí),可省略可省略終值終值=0 死循環(huán)死循環(huán) 步長步長3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 49循環(huán)次數(shù)循環(huán)次數(shù)) 1(步長初值終值Int例例: For I=2 To 13 Step

37、3 Print I , Next I Print “I=“, I 4) 1(3213Int循環(huán)執(zhí)行次數(shù)循環(huán)執(zhí)行次數(shù) 輸出輸出I的值分別為的值分別為: 2 5 8 11 出了循環(huán)輸出為出了循環(huán)輸出為: I=143.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 50例例3.8 編程計(jì)算:編程計(jì)算:S=1+2+3+100Dim S%, I%S=0 累加前變量累加前變量S為為0For I=1 to 100 S=S+INext IPrint S=,S 當(dāng)N=100N=N+1打印SS=0,N=1S=S+N例例3-8 算法流程圖算法流程圖3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 51形式

38、形式1:(當(dāng)型循環(huán)):(當(dāng)型循環(huán)) Do While|Until 語句塊語句塊 Exit Do 語句塊語句塊 Loop 條 件 F T Exit D o 語 句 塊 語 句 塊 D o W hile Loop 執(zhí) 行 過 程 3.4.2 DoLoop循環(huán)語句循環(huán)語句 3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 52形式形式2:(直到循環(huán))直到循環(huán))Do 語句塊語句塊 Exit Do 語句塊語句塊Loop While|Until T F Exit D o 語 句 塊 語 句 塊 條 件 D o Loop W hile 的 執(zhí) 行 過 程 3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種

39、基本結(jié)構(gòu) 53條 件語句塊語句塊TFExit Do條 件語句塊語句塊TFExit Do Do UntilLoop執(zhí)行過程執(zhí)行過程 DoLoop Until執(zhí)行過程執(zhí)行過程 3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 54說明:說明: (1 1)當(dāng)使用)當(dāng)使用WhileWhile 構(gòu)成循環(huán)時(shí),當(dāng)條件為構(gòu)成循環(huán)時(shí),當(dāng)條件為“真真”,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為“假假”,則退出循環(huán)。,則退出循環(huán)。 (2)當(dāng)使用)當(dāng)使用Until 構(gòu)成循環(huán)時(shí),當(dāng)條件為構(gòu)成循環(huán)時(shí),當(dāng)條件為“假假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為“真真”時(shí),則

40、退出循時(shí),則退出循環(huán)。環(huán)。 (3 3)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專門用來改變條件表達(dá)式中)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專門用來改變條件表達(dá)式中變量的語句,以使隨著循環(huán)的執(zhí)行,條件趨于不成立(或成變量的語句,以使隨著循環(huán)的執(zhí)行,條件趨于不成立(或成立),最后達(dá)到退出循環(huán)。立),最后達(dá)到退出循環(huán)。 (4)語句)語句Exit Do的作用是退出它所在的循環(huán)結(jié)構(gòu),它只能的作用是退出它所在的循環(huán)結(jié)構(gòu),它只能用在用在DO/Loop結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來實(shí)現(xiàn)當(dāng)滿足某一條件時(shí)提前退出循環(huán)。結(jié)構(gòu)中,用來實(shí)現(xiàn)當(dāng)滿足某一條件時(shí)提前退出循環(huán)。 3.4 循環(huán)

41、結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 553.4.3 WhileWend語句語句使用格式如下:使用格式如下:While Wend 說明:說明:該語句的功能與該語句的功能與Do While .Loop實(shí)現(xiàn)的實(shí)現(xiàn)的循環(huán)完全相同。循環(huán)完全相同。例例3.9:用:用doLoop語句改寫前面的例題語句改寫前面的例題3.83.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 56例例3.10 求兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù)求兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù)Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=

42、m: m=n: n=t r=m mod n Do While (r 0) m=n n=r r= m mod n LoopPrint 最大公約數(shù)最大公約數(shù)=, n Print 最小公倍數(shù)最小公倍數(shù)=, nm/n 算法流程圖算法流程圖3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 57 3.4.4 循環(huán)的嵌套循環(huán)的嵌套多重循環(huán)結(jié)構(gòu)多重循環(huán)結(jié)構(gòu) 如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。嵌套一層稱

43、為二重循環(huán),嵌套二層稱為三重循環(huán)。 上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見的二重嵌套形式:幾種常見的二重嵌套形式:3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 58(1)For I=. . For J=. . Next J . Next I(2)For I=. . Do While/Until . . Loop . Next I(3)Do While. . For J=. . Next J . Loop(4)Do While/Until. . Do While/Until . . Loop . Loop3.4 循環(huán)結(jié)構(gòu)循環(huán)

44、結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 59例如例如:打印九九乘法表打印九九乘法表. For i = 1 To 9 For j = 1 To 9 se = i & & j & = & i * j Picture1.Print Tab(j - 1) * 9 + 1); se; Next j Picture1.Print Next i3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 60 例例3.11 將一張面值為將一張面值為100元的人民幣等值換成元的人民幣等值換成100張張5元、元、1元和元和0.5元的零鈔,要求每種零鈔不少于元的零鈔,要求每種零鈔不少于1張,問有哪幾種組張,問有哪幾種組合?

45、合? 編程分析:如果用編程分析:如果用X,Y,Z來分別代表來分別代表5元、元、1元和元和0.5元的元的零鈔的張數(shù),根據(jù)題意只能得到下面兩個(gè)方程。零鈔的張數(shù),根據(jù)題意只能得到下面兩個(gè)方程。 X+Y+Z=100 5X+Y+0.5Z=100 3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 61 For i =1 To 10 For j=1 To 20 Next j Next i For i =1 To 10 Next i For i =1 To 10 Next i 對于循環(huán)的嵌套,要注意以下事項(xiàng):對于循環(huán)的嵌套,要注意以下事項(xiàng): (1) 內(nèi)循環(huán)變量與外循環(huán)變量不能同名;內(nèi)循環(huán)變量與外循環(huán)變量

46、不能同名; (2) 外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉; (3) 不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán)循環(huán). 下面是正確的嵌套下面是正確的嵌套3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 62 For i =1 To 10 For j=1 To 20 Next i Next j For i =1 To 10 For i=1 To 20 Next i Next i下面是不正確的嵌套下面是不正確的嵌套3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 63對于循環(huán)的嵌套,要注意以下事項(xiàng)

47、:對于循環(huán)的嵌套,要注意以下事項(xiàng):(1) 內(nèi)循環(huán)變量與外循環(huán)變量不能同名;內(nèi)循環(huán)變量與外循環(huán)變量不能同名;(2) 外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉; (3) 不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán)循環(huán)轉(zhuǎn)向內(nèi)循環(huán). 3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 643.4.5 幾種循環(huán)語句比較幾種循環(huán)語句比較 For.toNextDo while/until.Loopdo.Loop W hile/until.循 環(huán) 類 型當(dāng) 型 循 環(huán)當(dāng) 型 循 環(huán)直 到 循 環(huán)循 環(huán) 控 制 條件循 環(huán) 變 量

48、 大 于或 小 于 終 值條 件 成 立 /不 成 立執(zhí) 行 循 環(huán)條 件 成 立 /不 成 立執(zhí) 行 循 環(huán)循 環(huán) 變 量 初值在 FOR 語 句 行中在 DO 之 前在 DO 之 前使 循 環(huán) 結(jié) 束For 語 句 中 無需 專 門 語 句必 須 用 專 門 語 句必 須 使 用 專 門 語 句使 用 場 合循 環(huán) 次 數(shù) 容 易確 定循 環(huán) /結(jié) 束 控 制 條件 易 給 出循 環(huán) /結(jié) 束 控 制 條件 易 給 出3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 653.4.6 循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套 在循環(huán)結(jié)構(gòu)中可以完整嵌套選擇結(jié)構(gòu)即整個(gè)選擇結(jié)構(gòu)在循環(huán)

49、結(jié)構(gòu)中可以完整嵌套選擇結(jié)構(gòu)即整個(gè)選擇結(jié)構(gòu)都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時(shí),則要求整都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時(shí),則要求整個(gè)循環(huán)結(jié)構(gòu)必須完整地嵌套在一個(gè)分支內(nèi),一個(gè)循環(huán)結(jié)構(gòu)個(gè)循環(huán)結(jié)構(gòu)必須完整地嵌套在一個(gè)分支內(nèi),一個(gè)循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個(gè)或兩個(gè)以上的分支內(nèi)。不允許出現(xiàn)在兩個(gè)或兩個(gè)以上的分支內(nèi)。 3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 66(1)For I= IF Then End IF Next I(6) IF Then For I= End IF Next I(5)Select Case For I= Case Case Next I End Select(

50、3)For I= IF Then Next I End IF(2)IF Then For I= Next I End IF(4)For I= Select Case Case Case End Select Next I3.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 673.5.1 Goto 語句語句 形式形式: Go To 標(biāo)號(hào)標(biāo)號(hào)|行號(hào)行號(hào) 作用是無條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語句作用是無條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語句. 標(biāo)號(hào)是一個(gè)字符序列標(biāo)號(hào)是一個(gè)字符序列,行號(hào)是一個(gè)數(shù)字序列。行號(hào)是一個(gè)數(shù)字序列。例如:例如: Lp: goto lp 3.5 3.5 其它控制語句其它控制

51、語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 683.5.2 Exit 語句語句 Exit 語句用于退出語句用于退出 Do.Loop、For.Next、Function或或Sub代碼塊。代碼塊。 對應(yīng)的使用格式為:對應(yīng)的使用格式為:Exit Do、Exit For、Exit Function、Exit Sub。分別表示退出。分別表示退出DO循環(huán)、循環(huán)、For循環(huán)、函循環(huán)、函數(shù)過程、子過程。數(shù)過程、子過程。例如:例如: 下面的例子是使用下面的例子是使用 Exit 語句退出語句退出 For.Next 循環(huán)、循環(huán)、Do.Loop 循環(huán)及子過程。循環(huán)及子過程。3.5 3.5 其它控制語句其它控制語句 第3章

52、程序設(shè)計(jì)的3種基本結(jié)構(gòu) 69Private Sub Form_Click()Dim I%, Num% Do While True 建立無窮循環(huán)。建立無窮循環(huán)。 For I = 1 To 100 循環(huán)循環(huán) 100 次。次。 Num = Int(Rnd * 100) 生成一個(gè)生成一個(gè)099的隨機(jī)數(shù)。的隨機(jī)數(shù)。 Select Case Num Case 10: Exit For 退出退出 For.Next 循環(huán)。循環(huán)。 Case 50: Exit Do 退出退出 Do.Loop 循環(huán)。循環(huán)。 Case 64: Exit Sub 退出子過程。退出子過程。 End Select Next I LoopE

53、nd Sub3.5 3.5 其它控制語句其它控制語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 703.5.3 End 語句語句 形式:形式: End 功能:結(jié)束一個(gè)程序的運(yùn)行。功能:結(jié)束一個(gè)程序的運(yùn)行。 在在Visual Basic中還有多種形式的中還有多種形式的End語句,用于結(jié)束語句,用于結(jié)束一個(gè)程序塊或過程。一個(gè)程序塊或過程。 其形式有:其形式有: End If End Select End Type End With End Sub End Function等,它們與對應(yīng)的語句配對使用。等,它們與對應(yīng)的語句配對使用。3.5 3.5 其它控制語句其它控制語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 71

54、3.5.4 暫停語句暫停語句 Stop語句用來暫停程序的執(zhí)行,相當(dāng)于在事件代碼中設(shè)置語句用來暫停程序的執(zhí)行,相當(dāng)于在事件代碼中設(shè)置斷點(diǎn)。斷點(diǎn)。 語法格式為:語法格式為: Stop說明:說明:1. Stop語句的主要作用是把解釋程序置為中斷語句的主要作用是把解釋程序置為中斷(Break)模式,模式,以便對程序進(jìn)行檢查和調(diào)試??梢栽诔绦虻娜魏蔚胤椒胖靡员銓Τ绦蜻M(jìn)行檢查和調(diào)試??梢栽诔绦虻娜魏蔚胤椒胖肧top語句,當(dāng)執(zhí)行語句,當(dāng)執(zhí)行Stop語句時(shí),系統(tǒng)將自動(dòng)打開立即窗口。語句時(shí),系統(tǒng)將自動(dòng)打開立即窗口。2. 與與End語句不同。語句不同。 3.5 3.5 其它控制語句其它控制語句 第3章 程序設(shè)計(jì)的

55、3種基本結(jié)構(gòu) 723.5.5 With.End With 語句語句 形式:形式: With 對象名對象名 語句塊語句塊 End With 說明:說明:With 語句可以對某個(gè)對象執(zhí)行一系列的語句,語句可以對某個(gè)對象執(zhí)行一系列的語句,而不用重復(fù)指出對象的名稱。而不用重復(fù)指出對象的名稱。 例如,要改變一個(gè)對象的多個(gè)例如,要改變一個(gè)對象的多個(gè)屬性屬性,可以在可以在 With 控制控制結(jié)構(gòu)中加上屬性的賦值語句,這時(shí)候只是引用對象一次而不結(jié)構(gòu)中加上屬性的賦值語句,這時(shí)候只是引用對象一次而不是在每個(gè)屬性賦值時(shí)都要引用它。下面的例子顯示了如何使是在每個(gè)屬性賦值時(shí)都要引用它。下面的例子顯示了如何使用用 Wit

56、h 語句來給同一個(gè)對象的幾個(gè)屬性賦值。語句來給同一個(gè)對象的幾個(gè)屬性賦值。3.5 3.5 其它控制語句其它控制語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 73 例如,需要對同一對象設(shè)置幾個(gè)屬性。途徑之一是使用例如,需要對同一對象設(shè)置幾個(gè)屬性。途徑之一是使用多條語句。多條語句。Private Sub Form_Load() Command1.Caption = 退出退出(E&xit) Command1.Top = 500 Command1.Left = 4500 Command1.Enabled = TrueEnd Sub3.5 3.5 其它控制語句其它控制語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 74使用

57、使用With.End With 語句,上面程序的代碼如下。語句,上面程序的代碼如下。Private Sub Form_Load() With Command1 .Caption = 退出退出(E&xit) .Top = 500 .Left = 4500 .Enabled = True End WithEnd Sub 3.5 3.5 其它控制語句其它控制語句 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 753.5.6 On Error語句與語句與Resume 語句語句 3.5 3.5 其它控制語句其它控制語句 1設(shè)置錯(cuò)誤陷阱設(shè)置錯(cuò)誤陷阱用用On Error語句設(shè)置錯(cuò)誤陷阱,捕捉錯(cuò)誤,形式如下:語句設(shè)置錯(cuò)誤陷

58、阱,捕捉錯(cuò)誤,形式如下:(1)On Error GoTo語句標(biāo)號(hào)語句標(biāo)號(hào) 發(fā)生錯(cuò)誤時(shí),轉(zhuǎn)到發(fā)生錯(cuò)誤時(shí),轉(zhuǎn)到語句標(biāo)號(hào)語句標(biāo)號(hào)所指示的程序塊所指示的程序塊(2)On Error Resume Next 發(fā)生錯(cuò)誤時(shí),忽略錯(cuò)誤行,繼發(fā)生錯(cuò)誤時(shí),忽略錯(cuò)誤行,繼續(xù)執(zhí)行下一語句續(xù)執(zhí)行下一語句(3)On Error GoTo 0 禁止當(dāng)前過程中任何已啟動(dòng)的錯(cuò)禁止當(dāng)前過程中任何已啟動(dòng)的錯(cuò)誤誤第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 763.5.6 On Error語句與語句與Resume 語句語句 3.5 3.5 其它控制語句其它控制語句 2編寫錯(cuò)誤編寫錯(cuò)誤處理處理程序程序 編寫錯(cuò)誤處理程序一般要使用到編寫錯(cuò)誤處理程序一

59、般要使用到Err 對象,它是一個(gè)系統(tǒng)對對象,它是一個(gè)系統(tǒng)對象,在象,在Visual Basic中,可以通過中,可以通過Err對象來獲取錯(cuò)誤的消息。對象來獲取錯(cuò)誤的消息。當(dāng)出現(xiàn)當(dāng)出現(xiàn)Visual Basic錯(cuò)誤時(shí),有關(guān)錯(cuò)誤的信息存儲(chǔ)在錯(cuò)誤時(shí),有關(guān)錯(cuò)誤的信息存儲(chǔ)在Err對象中。對象中。Err對象每次只維護(hù)一個(gè)錯(cuò)誤的信息。當(dāng)出現(xiàn)新的錯(cuò)誤時(shí),對象每次只維護(hù)一個(gè)錯(cuò)誤的信息。當(dāng)出現(xiàn)新的錯(cuò)誤時(shí),Err對象將更新為新的錯(cuò)誤信息。對象將更新為新的錯(cuò)誤信息。 Err對象的默認(rèn)屬性是對象的默認(rèn)屬性是Number屬性。當(dāng)運(yùn)行時(shí)發(fā)生錯(cuò)誤時(shí),屬性。當(dāng)運(yùn)行時(shí)發(fā)生錯(cuò)誤時(shí),Err對象的屬性被填入明確識(shí)別錯(cuò)誤的信息以及處理這個(gè)錯(cuò)

60、誤所對象的屬性被填入明確識(shí)別錯(cuò)誤的信息以及處理這個(gè)錯(cuò)誤所使用的信息。使用的信息。 第3章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 773.5.6 On Error語句與語句與Resume 語句語句 3.5 3.5 其它控制語句其它控制語句 3退出錯(cuò)誤處理在錯(cuò)誤處理程序中,當(dāng)遇到在錯(cuò)誤處理程序中,當(dāng)遇到 Exit Sub、Exit Function、End Sub、End Function等語句時(shí),將退出錯(cuò)誤捕獲。等語句時(shí),將退出錯(cuò)誤捕獲。在錯(cuò)誤處理程序結(jié)束后,要恢復(fù)原有的運(yùn)行,可用在錯(cuò)誤處理程序結(jié)束后,要恢復(fù)原有的運(yùn)行,可用Resume 語語句。句。語法格式為:語法格式為:(1)Resume 重新執(zhí)行產(chǎn)生錯(cuò)誤

溫馨提示

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

評論

0/150

提交評論