第四章 選擇結(jié)構(gòu)設計_第1頁
第四章 選擇結(jié)構(gòu)設計_第2頁
第四章 選擇結(jié)構(gòu)設計_第3頁
第四章 選擇結(jié)構(gòu)設計_第4頁
第四章 選擇結(jié)構(gòu)設計_第5頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、3.5 選 擇 結(jié) 構(gòu)所謂選擇結(jié)構(gòu),表示根據(jù)不同的情況做出不同的選擇,執(zhí)行不同的操作。此時就需要對某個條件做出判斷,根據(jù)這個條件的具體取值情況,決定該執(zhí)行何種操作。VB中的選擇結(jié)構(gòu)語句分為If語句和Select Case語句兩種。 If語句If語句又分為單行格式和多行格式。1. 單行格式If語句此種格式在對條件進行判斷后,根據(jù)所得的不同結(jié)果進行不同的操作。不管是哪種結(jié)果,操作部分都必須是單個語句。此種格式的具體語法如下:If 條件 Then 語句1 Else 語句2此種格式中的條件均為表達式,一般為條件表達式。條件表達式的值只有兩種情況:真或假(即取值為零或非零)。某些情況下,其中的Else部

2、分是可以省略的。此格式所代表的含義是:當條件成立時,執(zhí)行Then后面的語句1,執(zhí)行完后再執(zhí)行整個If語句后的語句;當條件不成立時,若存在Else部分,則執(zhí)行Else后的語句2,再執(zhí)行整個If語句后的語句,否則就直接執(zhí)行整個If語句后的語句。例如:編寫一個函數(shù)求兩個數(shù)中最大數(shù)。Private Function MaxValue1(a As Integer,b As Integer) As Integer If a > b Then MaxValue1 = a Else MaxValue1 = bEnd Function2. 多行格式If語句多行格式又分為三種格式。(1)格式一此種格式的具體

3、寫法如下:If 條件 Then 語句體End If這種格式代表的含義是:當條件成立時,執(zhí)行Then后面的語句體中的全部語句,執(zhí)行完后跳出整個If語句體,執(zhí)行If語句體后的語句;當條件不成立時,直接執(zhí)行整個If語句體后的語句。例如前面的求兩個數(shù)中最大數(shù)的函數(shù)可以改寫為:Private Function MaxValue2(a As Integer,b As Integer) As Integer If a > b Then MaxValue2 = a End If If a<=b Then MaxValue2 = b End IfEnd Function這種改法不一定好,但從功能上是

4、一致的。(2)格式二此種格式的具體寫法如下:If 條件 Then語句體1Else語句體2End If這種格式代表的含義是:當條件成立時,執(zhí)行Then后面的語句體1中的全部語句,執(zhí)行完后跳出整個If語句體,執(zhí)行If語句體后的語句;當條件不成立時,則執(zhí)行Else后的語句體2中的全部語句,再執(zhí)行整個If語句體后的語句。例如,前面的求兩個數(shù)中最大數(shù)的函數(shù)可以改寫為:Private Function MaxValue3(a As Integer,b As Integer) As Integer If a > b Then MaxValue3 = a Else MaxValue3 = b End I

5、fEnd Function(3)格式三此種格式的語法如下:If 條件1 Then 語句體1ElseIf 條件2 Then 語句體2 ElseIf 條件3 Then 語句體3 Else 語句體nEnd If此種格式只在條件不成立時再進行新的判斷,可以使用簡單的ElseIf格式。而且ElseIf部分可以嵌套多層,根據(jù)具體情況決定。只要使用時結(jié)構(gòu)合理,可以使用任意層嵌套。例如,編寫一個函數(shù)將分數(shù)轉(zhuǎn)換成等級,轉(zhuǎn)換方式如表3.4所列。表3.4 分數(shù)等級轉(zhuǎn)換表等級分數(shù)優(yōu)90良80中70及格60不及格60具體代碼如下:Private Function Level1(x As Integer) As Stri

6、ng If x>=90 Then Level1 = "優(yōu)" ElseIf x>=80 Then Level1 = "良" ElseIf x>=70 Then Level1 = "中" ElseIf x>=60 Then Level1 = "及格" Else Level1 = "不及格" End IfEnd Sub3.5.2 Select Case語句在有些情況下,對某個條件判斷后可能會出現(xiàn)多種取值的情況,此時不能再使用上述If語句結(jié)構(gòu)。在VB中,專門為此種情況設計了一個S

7、elect Case語句結(jié)構(gòu)。在這種結(jié)構(gòu)中,只有一個用于判斷的表達式,根據(jù)此表達式的不同計算結(jié)果,執(zhí)行不同的語句體部分。這種結(jié)構(gòu)本質(zhì)上是If嵌套結(jié)構(gòu)的一種變形,主要差別在于:If嵌套結(jié)構(gòu)可以對多個表達式的結(jié)果進行判斷,從而執(zhí)行不同的操作;而Select Case結(jié)構(gòu)則只能對一個表達式的結(jié)果進行判斷,然后再執(zhí)行不同的操作。Select Case語句的一般格式為:Select Case 表達式 Case 表達式結(jié)果表1 語句體1 Case 表達式結(jié)果表2 語句體2 Case Else 語句體nEnd Select只要使用時結(jié)構(gòu)合理,其中的“Case 表達式結(jié)果表”可以使用任意多個。上述格式中,表達

8、式可以是數(shù)值表達式或字符串表達式,然后根據(jù)表達式的取值來與下列的各個表達式結(jié)果表列去進行比較,若與其中某個值相同,則執(zhí)行該表列后的相應語句體部分,執(zhí)行后退出整個Select Case結(jié)構(gòu),執(zhí)行其后的語句;若出現(xiàn)與表列中的所有值均不相等的情況,再看Select Case結(jié)構(gòu)中是否有Case Else語句,如果有此語句,則執(zhí)行其后相應的語句體部分,然后退出Select Case結(jié)構(gòu),執(zhí)行其后的語句,否則不執(zhí)行任何結(jié)構(gòu)內(nèi)的語句,整個Select Case結(jié)構(gòu)結(jié)束,再執(zhí)行其后的語句。Select Case語句一般格式中的表達式結(jié)果表列可以有如下四種格式,即允許出現(xiàn)四種Case形式:(1)表達式結(jié)果:此

9、種格式表達式結(jié)果表列中只有一個數(shù)值或字符串供用戶與表達式的值進行比較。例如:Case 1或者Case "char"等。(2)表達式結(jié)果1,表達式結(jié)果2,表達式結(jié)果n:此種格式在某一個表達式結(jié)果表列中有多個數(shù)值或字符串供用戶與表達式的值進行比較,多個取值之間用逗號間隔。如果表達式的值與這些數(shù)值或字符串中的一個相等,即可執(zhí)行此表達式結(jié)果表列后相應的語句體部分;否則,若表達式的值與這些取值均不相等,可以再與其他Case后的表達式結(jié)果表列進行比較。例如:Case 1,3,5,7或者Case "a", "b", "c", &

10、quot;d" 等。(3)表達式結(jié)果1 To 表達式結(jié)果2:此種格式在表達式結(jié)果表列中提供了一個數(shù)值或字符串的取值范圍,可以將此范圍內(nèi)的所有取值與表達式的值進行比較。要求表達式結(jié)果1的值必須小于表達式結(jié)果2的值,這樣才能提供一個范圍。如果表達式的值與此范圍內(nèi)的某個值相等,則可執(zhí)行此表達式結(jié)果表列后的相應語句體部分;否則,若表達式的值與這個取值范圍內(nèi)的值均不相等,則可以再與其后的表達式結(jié)果表列進行比較。例如:Case 1 To 4或者Case "a" To "z"等。(4)Is 關(guān)系運算符 數(shù)值或字符串:此種格式使用了關(guān)鍵字“Is”,其后只能使用

11、各種關(guān)系運算符:“=”、“<”、“>”、“<=”、“>=”和“<>”等。可以將表達式的值與關(guān)系運算符后的數(shù)值或字符串進行關(guān)系比較,檢驗是否滿足該關(guān)系運算符。若滿足,則執(zhí)行此表達式結(jié)果表列后的相應語句體部分;否則,與其后的表達式結(jié)果表列進行比較。例如:Case Is < 3 或者Case Is > "Apple" 等。在實際使用時,以上這幾種格式允許混合使用。例如:Case Is < 5,7,8,9,Is > 12或Case Is < "z", "A" To "

12、Z"M注意:在使用Select Case結(jié)構(gòu)時,需要注意以下兩點:· 若在多個Case子句中有同一種取值重復出現(xiàn),則只執(zhí)行第一個出現(xiàn)此取值的Case語句后的相應語句體。· Select Case結(jié)構(gòu)中的Case Else子句部分必須放在其他Case子句后面,用于表達式的值與前面所有Case子句均不匹配時,執(zhí)行其后的語句體部分。這個子句部分可以省略,此時若出現(xiàn)與所有Case子句均不匹配的情況,則不執(zhí)行任何語句體部分,直接退出Select Case結(jié)構(gòu),執(zhí)行其后的部分。例如,前面的分數(shù)轉(zhuǎn)換成等級的函數(shù)可以使用Select Case語句改寫如下:Private Function Level2(x As Integer) As String Select Case x Case Is>=9

溫馨提示

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

最新文檔

評論

0/150

提交評論