久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Select Case語句教程

 zele 2011-02-25

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

Select Case 測試表達(dá)式

Case 表達(dá)式1

如果表達(dá)式1匹配測試表達(dá)式的語句

Case 表達(dá)式2

如果表達(dá)式2匹配測試表達(dá)式的語句

Case 表達(dá)式N

如果表達(dá)式N匹配測試表達(dá)式的語句

Case Else

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

End Select

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

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

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

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

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

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.       運(yùn)行過程TestButtons三次,每次選擇一個不同的按鈕,。

 

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

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

 

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

Select Case 測試表達(dá)式

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子句里使用一個簡單表達(dá)式,。然而,,很多時候,你可能需要在Case子句里確定一個數(shù)值范圍,??梢酝ㄟ^關(guān)鍵字To用于表達(dá)式的數(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子句的條件表達(dá)式進(jìn)行比較。第一和第三條Case子句示范如何通過使用關(guān)鍵字To在條件表達(dá)式里使用數(shù)值范圍,。因為unitsSold=99,,第一個Case子句里的條件表達(dá)式為真,因此,,VB0.05賦給變量Discount,。第二個Case子句如何呢?它也為真,。盡管,,很明顯99小于等于500VB不會執(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來運(yùn)行它,。

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

 

10.Case子句里確定多個表達(dá)式

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

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語句里的運(yùn)算符OR意義一樣。只要這些條件有一個為真,,Case子句就為真,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多