【正文】
達(dá)式 n T F T F 語句塊 n + 1 語句塊 2 語句塊 1 F T 表達(dá)式 1 語句塊 n 該語句的作用是根據(jù)不同的表達(dá)式值確定執(zhí)行哪個(gè)語句塊 本章目錄 上一頁(yè) 下一頁(yè) 例: 已知變量 strC中存放了一個(gè)字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。 If Ucase(strC) =A And Ucase (strC) =Z Then Print strC + 是字母字符 ElseIf strC =0 And strC =9 Then Print strC + 是數(shù)字字符 Else Print strC + 其他字符 End If 不管有幾個(gè)分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語句,其余分支不再執(zhí)行;若條件都不滿足,且有 Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。 . ElseIf不能寫成 Else If。 多分支結(jié)構(gòu)例 本章目錄 上一頁(yè) 下一頁(yè) If語句的嵌套是指 If或 Else后面的語句塊中又包含 If語 If 表達(dá)式 1 Then If 表達(dá)式 11 Then … End If … End If If xy Then t=x: x=y: y=t If yz Then t=y: y=z: z=t If xy Then t=x: x=y: y=t End If End If If語句的嵌套 例 已知 x, y, z三個(gè)數(shù),使得 xyz 用一個(gè) IF語句和一個(gè)嵌套的IF語句實(shí)現(xiàn) 本章目錄 上一頁(yè) 下一頁(yè) Select Case語句 Select Case 變量或表達(dá)式 Case 表達(dá)式列表 1 語句塊 1 Case 表達(dá)式列表 2 語句塊 2 … [Case Else 語句塊 n+1] End Select 表達(dá)式列表 與 變量或表達(dá)式 的類型必須相同,是下面 4種形式之一 : ?表達(dá)式 例 : A ?一組用逗號(hào)分隔的枚舉 值 2,4,6,8 ?表達(dá)式 1 To 表達(dá)式 2 60 To 100 ?Is 關(guān)系運(yùn)算符表達(dá)式 Is 60 本章目錄 上一頁(yè) 下一頁(yè) Select Case語句例 將例 Select Case語句實(shí)現(xiàn)如下: Select Case strC Case a To z, A To Z Print strC + 是字母字符 Case 0 To 9 Print strC +是數(shù)字字符 Case Else Print strC + 是其他字符 End Select 對(duì)于多分支結(jié)構(gòu),用 Select Case語句比用 If…Then…ElseIf 語句直觀,程序可讀性強(qiáng)。但不是所有的多分支結(jié)構(gòu)均可用Select Case語句代替 If…Then…ElseIf 語句。 本章目錄 上一頁(yè) 下一頁(yè) Select Case語句例 例: 已知坐標(biāo)點(diǎn) (x, y), 判斷其落在哪個(gè)象限 。 代碼一 If x 0 And y 0 Then Print 在第一象限 ElseIf x 0 And y 0 Then Print 在第二象限 ElseIf x 0 And y 0 Then Print 在第三象限 ElseIf x 0 And y 0 Then Print 在第四象限 End If 代碼二 Select Case x,y Case x 0 And y 0 Print 在第一象限 Case x 0 And y 0 Print 在第二象限 Case x 0 And y 0 Print 在第三象限 Case x 0 And y 0 Print 在第四象限 End Select 代碼二錯(cuò)誤: 1. Select Case 后不能出現(xiàn)多個(gè)變量; 2. Case后不能出現(xiàn)變量及有關(guān)運(yùn)算符 。 本章目錄 上一頁(yè) 下一頁(yè) 條件函數(shù) 1) IIf 函數(shù) IIf(表達(dá)式,當(dāng)表達(dá)式為 True時(shí)的值,當(dāng)表達(dá)式為 False時(shí)的值) 例如,求 x,y中大的數(shù),放入 Tmax變量中,語句如下: Tmax=IIf( x y, x, y) 2) Choose函數(shù) Choose(數(shù)字型變量,值為 1的返回值,值為 2的返回值 … ) 例如, Nop是 1~4的值,轉(zhuǎn)換成 + 、 、 、 247。 運(yùn)算符的語句如下: Op= Choose( Nop, +, , , 247。 ) 當(dāng)值為 1,返回字符串“ +”,然后放入 Op變量中,值為 2,返回字符串“ ”,依次類推;當(dāng) Nop是 1~4的非整數(shù),系統(tǒng)自動(dòng)取整再判斷;若 Nop不在 1~4之間,函數(shù)返回 Null值。 本章目錄 上一頁(yè) 下一頁(yè) 循環(huán)結(jié)構(gòu) 計(jì)算機(jī)最擅長(zhǎng)的功能之一就是按規(guī)定的條件 , 重復(fù)執(zhí)行某些操作 。 例如 , 按照人口某增長(zhǎng)率 , 對(duì)人口增長(zhǎng)統(tǒng)計(jì);根據(jù)各課程的學(xué)分 、 績(jī)點(diǎn)和學(xué)生的成績(jī) , 統(tǒng)計(jì)每個(gè)學(xué)生的平均績(jī)點(diǎn)等 。 這類問題都可通過循環(huán)結(jié)構(gòu)來方便地實(shí)現(xiàn) 。 VB中提供了兩種類型的循環(huán)語句:一種是計(jì)數(shù)循環(huán)語句;另一種是條件型循環(huán)語句 。 本章目錄 上一頁(yè) 下一頁(yè) For循環(huán)語句 For循環(huán)語句用于控制循環(huán)次數(shù)預(yù)知的循環(huán)結(jié)構(gòu) 。 For 循環(huán)變量 =初值 To 終值 [Step 步長(zhǎng) ] 語句塊 [Exit For] 語句塊 Next 循環(huán)變量 循環(huán)變量必須為數(shù)值型 。 循環(huán)次數(shù) )1( ?? ?步長(zhǎng) 初值終值In t 0 初值 終值 =1 時(shí),可省略 0 初值 終值 =0 死循環(huán) 步長(zhǎng) 例 : 計(jì)算 1~100的奇數(shù)和 本章目錄 上一頁(yè) 下一頁(yè) For循環(huán)語句 循環(huán)流程: (1) 循環(huán)變量被賦初值 , 它僅被賦值一次 。 (2) 判斷循環(huán)變量是否在終值內(nèi) , 如果是 , 執(zhí)行循環(huán)體;如果否 , 結(jié)束循環(huán) , 執(zhí)行Next的下一語句 。 (3) 循環(huán)變量加步長(zhǎng) , 轉(zhuǎn) (2),繼續(xù)循環(huán) T T 循環(huán)變量≤終值 語句塊 語句塊 循環(huán)變量 = 循環(huán)變量 + 步長(zhǎng) F 循環(huán)變量 = 初值 有 E x i t F o r F N e x t 的下一語句 本章目錄 上一頁(yè) 下一頁(yè) Do…Loop 循環(huán)語句 Do循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。 形式 1: Do { While|Until }條件 語句塊 [Exit Do 語句塊 ] Loop 形式 1為先判斷后執(zhí)行,有可能一次也不執(zhí)行; 形式 2為先執(zhí)行后判斷,至少執(zhí)行一次。 形式 2: Do 語句塊 [Exit Do 語句塊 ] Loop { While|Until} 條件 本章目錄 上一頁(yè) 下一頁(yè) Do…Loop 流程 F T 語句塊 語句塊 Do W h i l e ? L o o p 表達(dá)式列表 1 有 E x i t D o F T T F 語句塊 語句塊 表達(dá)式列表 1 Do ? L o o p W h i l e 有 E x i t D o F T 本章目錄 上一頁(yè) 下一頁(yè) 循環(huán)例題 例 : 我國(guó)有 13億人口,按人口年增長(zhǎng) %計(jì)算,多少年后我國(guó)人口超過 26億。 解此問題兩種方法 , 可根據(jù)公式: )0 0 o g ()2l o g (n 0 . 0 0 8 )1 3 ( 126 n???直接利用標(biāo)準(zhǔn)函數(shù)對(duì)數(shù)可求得,但求得的年數(shù)不為整數(shù);也可利用循環(huán)求得 。 本章目錄 上一頁(yè) 下一頁(yè) 循環(huán)例題 例題:用輾轉(zhuǎn)相除法求兩自然數(shù)的最大公約數(shù)和最小公倍數(shù)。 求最大公約數(shù)的算法思想: (1)對(duì)于已知兩數(shù) m, n, 使得mn (2) m除以 n得余數(shù) r (3)若 r=0,則 n為最大公約數(shù),結(jié)束;否則執(zhí)行 (4) (4)m?n, n?r,再重復(fù)執(zhí)行 (2) 例 m=14 ,n=6 的最大公約數(shù) If m n Then t = m: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公約數(shù) =, n 輾轉(zhuǎn)相減法 ? m=mn mn ? n=nm nm ? m、 n為公約數(shù) m=n Do While m n m n If m n Then 14 6 m = m – n 8 6 Else 2 6 n = n – m 2 4 End If 2 2 Loop 本章目錄 上一頁(yè) 下一頁(yè) 循環(huán)的嵌套 在一個(gè)循環(huán)體內(nèi)又包含了一個(gè)完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套 。 循環(huán)嵌套對(duì) For循環(huán)語句和 Do… Loop語句均適用 。 例題: 打印九九乘法表 思考: 打印上三角或下三角程序如何改動(dòng)? 本章目錄 上一頁(yè) 下一頁(yè) 退出和結(jié)束語句 在 VB中 , 有多種形式的 Exit語句 , 用于退出某種控制結(jié)構(gòu)的執(zhí)行 。 Exit的形式如下: Exit For、 Exit Do、 Exit Sub、 Exit Function等 。 獨(dú)立的 End語句用于結(jié)束一個(gè)程序的運(yùn)行 , 它可以放在任何事件過程中 。 在 VB中 , 還有多種形式的 End語句 , 用于結(jié)束一個(gè)過程或塊 ,在控制語句或過程中經(jīng)常使用 。 End語句的多種形式如下: End If、 End Select、 End With、 End Type 、 End Sub 、End Function 等 , 它與對(duì)應(yīng)的語句配對(duì)使用 。 本章目錄 第八章 數(shù) 組 數(shù)組的概念 靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組 數(shù)組的基本操作 數(shù)組的初始化 數(shù)組的應(yīng)用舉例 控件數(shù)組 本書目錄 數(shù)組的概念 上一頁(yè) 下一頁(yè) 1. 引例 例: 求 100個(gè)學(xué)生的平均成績(jī) , 并統(tǒng)計(jì)高于平均分的人數(shù) 。 用簡(jiǎn)單變量和循環(huán) , 求平均成績(jī)程序段如下: aver = 0 For i = 1 To 100 mark = InputBox(輸入學(xué)生成績(jī) ) aver = aver + mark Next i aver = aver / 100 由于循環(huán)體內(nèi)變量 mark只能放一個(gè)學(xué)生的成績(jī) , 無法統(tǒng)計(jì)高于平均分的人數(shù) 。 若用簡(jiǎn)單變量保存 100個(gè)學(xué)生的成績(jī) , 則需定義 100個(gè)變量和使用 100句輸入語句 。 由此引入了數(shù)組 。 本章目錄 數(shù)組的概念 上一頁(yè) 下一頁(yè) 用數(shù)組解決問題的程序如下: Private Sub Command1_Click() Dim mark(1 To 100) As Integer 39。 聲明有 100個(gè)元素的數(shù)組 mark Dim aver!, overn%, i% aver = 0