国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Select Case語句教程

為了避免難以弄清的復(fù)雜的嵌套的If語句,你可以使用Select Case語句代替。它的語法為:

Select Case 測試表達式

Case 表達式1

如果表達式1匹配測試表達式的語句

Case 表達式2

如果表達式2匹配測試表達式的語句

Case 表達式N

如果表達式N匹配測試表達式的語句

Case Else

如果沒有表達式匹配測試表達式要執(zhí)行的語句

End Select

你在關(guān)鍵字Select CaseEnd Select之間放置任意多個條件以測試。子句Case Else是可選的,當(dāng)你希望可能有條件表達式返回假時使用它。在Select Case語句里,VB將每個表達式和測試表達式相比較。

這里是Select Case語句背后的邏輯。當(dāng)VB遇到Select Case子句,它記下測試表達式的值。然后它前進到下面的第一個Case子句,如果這個表達式的值和測試表達式的值匹配的話,VB就會執(zhí)行語句直到遇到另外一個Case子句并且跳到End Select語句。然而,如果第一個Case子句后面的表達式測試結(jié)果和測試表達式不匹配時,VB就會檢查每一個Case子句,直到它找到一個匹配的為止。如果沒有一個Case子句后面的表達式匹配測試表達式的值的話,VB就會跳到Case Else子句并執(zhí)行該語句直到遇到關(guān)鍵字End Select。注意,Case Else子句是可選的,如果你的程序里面沒有使用Case Else并且沒有一個Case子句的表達式和測試表達式相匹配,VB就會跳到End Select后面的語句,并且繼續(xù)執(zhí)行你的程序。

我們來一個使用Select Case語句的程序例子。在第四章里,你學(xué)習(xí)了MsgBox函數(shù)允許你顯示帶有一個或多個按鈕的信息,你也學(xué)習(xí)了MsgBox函數(shù)的結(jié)果可以賦予一個變量。使用Select Case語句,你現(xiàn)在可以基于用戶按下的按鈕決定采取哪個行動。

1.       在當(dāng)前工程里插入一新模塊

2.       重命名新模塊SelectCase.

3.       輸入下述過程TestButtons:

Sub TestButtons()

Dim question As String

Dim bts As Integer

Dim myTitle As String

Dim myButton As Integer

 

question = "Do you want to open a new workbook?"

bts = vbYesNoCancel + vbQuestion + vbDefaultButton1

myTitle = "New Workbook"

 

myButton = MsgBox(prompt:=question, buttons:=bts, _ title:=myTitle)

 

Select Case myButton

Case 6

Workbooks.Add

Case 7

MsgBox "You can open a new book manually later."

Case Else

MsgBox "You pressed Cancel."

End Select

 

End Sub

過程TestButtons的第一部分顯示一個帶有三個按鈕的信息框:是,否和取消。用戶選擇按鈕的值賦予變量myButton

如果用戶點擊“是”,那么變量myButton就會被賦值常量vbYes或它對應(yīng)的值6;如果用戶點擊“否”,那么變量myButton則賦值為常量vbNo或它對應(yīng)的值7;最后,如果點擊了“取消”,變量myButton的內(nèi)容就等于vbCancel2。

Select Case語句對照儲存在變量myButton里的值檢查Case子句提供的值。當(dāng)有匹配時,就會執(zhí)行適當(dāng)?shù)?span lang="EN-US">Case語句。

如果你使用常量,而不是按鈕值,過程TestButtons同樣會運行一致。

Select Case myButton

Case vbYes

Workbooks.Add

Case vbNo

MsgBox "You can open a new book manually later."

Case Else

MsgBox "You pressed Cancel."

End Select

你可以忽略Else子句,可以按下述方法修改一下Select Case語句:

Select Case myButton

Case vbYes

Workbooks.Add

Case vbNo

MsgBox "You can open a new book manually later."

Case vbCancel

MsgBox "You pressed Cancel."

End Select

4.       運行過程TestButtons三次,每次選擇一個不同的按鈕。

 

技巧5-6 通過Case Else捕捉錯誤

盡管在Select Case語句里使用Case Else不是強制的,使用它總是很好的,以防止萬一測試有沒有預(yù)料到的值。Case Else子句是個放置錯誤信息的好地方。

 

有時候,作決定是基于測試表達式的條件,例如它是否大于,小于,等于或使用一些其它的關(guān)系運算符(參見表5-1)。關(guān)鍵字Is使你能夠在Case子句里使用條件表達式。使用關(guān)鍵字IsSelect Case語句的語法如下:

Select Case 測試表達式

Case Is 條件1

如果條件1為真時執(zhí)行的語句

Case Is 條件2

如果條件2為真時執(zhí)行的語句

Case Is 條件N

如果條件N為真時執(zhí)行的語句

End Select

例如,我們來比較幾個數(shù)字:

Select Case myNumber

Case Is <10

MsgBox "The number is less than 10"

Case 11

MsgBox "You entered eleven."

Case Is >=100

MsgBox "The number is greater than or equal to 100."

Case Else

MsgBox "The number is between 12 and 99."

End Select

假設(shè)變量myNumber120,那么第三個Case子句為真,并且只有Case Is >=100Case Else之間的語句會被執(zhí)行。

 

9.確定Case子句里數(shù)值的范圍

在前面的例子里,你看到了在每個Case子句里使用一個簡單表達式。然而,很多時候,你可能需要在Case子句里確定一個數(shù)值范圍??梢酝ㄟ^關(guān)鍵字To用于表達式的數(shù)值之間來實現(xiàn)它,如下所示:

Select Case unitsSold

Case 1 to 100

Discount = 0.05

Case Is <= 500

Discount = 0.1

Case 501 to 1000

Discount = 0.15

Case Is >1000

Discount = 0.2

End Select

我們來分析一下上面的Select Case代碼塊,假設(shè)變量unitsSold當(dāng)前值為99。VB將變量unitsSold的值與Case子句的條件表達式進行比較。第一和第三條Case子句示范如何通過使用關(guān)鍵字To在條件表達式里使用數(shù)值范圍。因為unitsSold=99,第一個Case子句里的條件表達式為真,因此,VB0.05賦給變量Discount。第二個Case子句如何呢?它也為真。盡管,很明顯99小于等于500,VB不會執(zhí)行相關(guān)的語句Discount=0.1。原因是,一旦VB找到了一個真條件的Case子句,它就不會去管其它的Case子句,它將跳過那些代碼,繼續(xù)執(zhí)行End Select語句后面可能有的語句。

我們來練練使用Select Case語句,在函數(shù)過程里使用它。回想在第四章里,函數(shù)過程允許你將結(jié)果返回給一個子過程。假設(shè)該子過程必須根據(jù)銷售的套數(shù)來顯示一個折扣,你可以從用戶那里獲得銷售套數(shù),然后允許一個函數(shù)來確定需要的折扣:

1.       在模塊SelectCase里輸入下列子過程:

Sub DisplayDiscount()

Dim unitsSold As Integer

Dim myDiscount As Single

unitsSold = InputBox("Enter the number of sold units:")

myDiscount = GetDiscount(unitsSold)

MsgBox myDiscount

End Sub

2.       輸入下列函數(shù)過程:

Function GetDiscount(unitsSold As Integer)

Select Case unitsSold

Case 1 To 200

GetDiscount = 0.05

Case Is <=500

GetDiscount = 0.1

Case 501 To 1000

GetDiscount = 0.15

Case Is >1000

GetDiscount = 0.2

End Select

End Function

3.       將光標(biāo)放在過程DisplayDiscount的任意地方并且按下F5來運行它。

過程DisplayDiscount將儲存于變量unitsSold的值傳遞給函數(shù)GetDiscount。當(dāng)VB遇到Select Case語句時,它檢查第一個Case子句里的值是否合儲存于unitsSold里面的值是否匹配。如果匹配,VB給函數(shù)名稱賦值百分之五(0.05),并且跳到關(guān)鍵字End Select。因為,在函數(shù)過程里面沒有更多需要運行的語句,VB就返回主調(diào)過程——DisplayDiscount,在這里,它將函數(shù)的結(jié)果賦予變量myDiscount。最后的語句用信息框來顯示獲得的折扣。

 

10.Case子句里確定多個表達式

你可以使用逗號明確單一Case子句里的多個表達式:

Select Case myMonth

Case "January", "February", "March"

Debug.Print myMonth & ": 1st Qtr."

Case "April", "May", "June"

Debug.Print myMonth & ": 2nd Qtr."

Case "July", "August", "September"

Debug.Print myMonth & ": 3rd Qtr."

Case "October", "November", "December"

Debug.Print myMonth & ": 4th Qtr."

End Select

 

技巧5-7 Case子句的多個條件

用來分隔開Case子句里面多個條件的逗號,和用于If語句里的運算符OR意義一樣。只要這些條件有一個為真,Case子句就為真。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[轉(zhuǎn)]SEH(結(jié)構(gòu)化異常處理)_Lsz's Blog
《C++ Primer》筆記 第5章 語句
VB6.0的幾種循環(huán)語句及條件語句
初中生Python程序設(shè)計百問百答
VB程序設(shè)計程序控制結(jié)構(gòu)(一)
MySQL SELECT查詢
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服