VB6.0的幾種循環語句及條件語句


一、循環語句----------------------------------------------------------------------------------------------

  可以參考:VBS基礎篇-循環語句。

  1.While...Wend 語句
  只要指定的條件為 True,則會重復執行一系列的語句。
語法
While condition
  [statements]
  ..
Wend

  2.Do...Loop語句
  2.1 第一種用法
  用 Do 循環重復執行一語句塊,且重復次數不定。Do...Loop 語句有幾種演變形式,但每種都計算數值條件以決定是否繼續執行。如同 If...Then condition 必須是一個數值或者值為 True(非零)或 False(零)的表達式。
  在下面的 Do...Loop 循環中,只要 condition 為 True 就執行 statements。
Do While condition
  statements
  ..
Loop
  2.2 第二種用法
  Do...Loop 語句的另一種演變形式是先執行語句,然后在每次執行后測試 condition。這種形式保證 statements 至少執行一次:
Do
  statements
Loop While condition
  2.3 注:其它兩種演變形式類似於前兩個,所不同的是,只要 condition 為 False 而不是 True,它們就執行循環。
----循環零次或多次
Do Until condition
  statements
Loop
----至少循環一次
Do
  statements
Loop Until condition

  3.For...Next語句
  在不知道循環內需要執行多少次語句時,宜用 Do 循環。但是,在知道要執行多少次時,則最好使用 For...Next 循環。與 Do 循環不同, For 循環使用一個叫做計數器的變量,每重復一次循環之后,計數器變量的值就會增加或者減少。For 循環的語法如下:
For counter = start To end [Step increment]
  statements
Next [counter]
參數 Counter、Start、end 和 increment 都是數值型的。
  注意 increment 參數可正可負。如果 increment 為正,則 Start 必須小於等於 end,否則不能執行循環內的語句。如果 increment 為負,則 Start 必須大於等於 end,這樣才能執行循環體。如果沒有設置 Step,則 increment 缺省值為 1。
實例:

//以下代碼打印出所有有效的屏幕字體名: Private Sub Form_Click () Dim I As Integer
For i = 0 To Screen.FontCount Print Screen.Fonts (i) Next
End Sub

  4.For Each...Next語句

  For Each...Next 循環與 For...Next 循環類似,但它對數組或對象集合中的每一個元素重復一組語句,而不是重復語句一定的次數。如果不知道一個集合有多少元素, For Each...Next 循環非常有用。
For Each...Next 循環的語法如下:
For Each element In group
  statements
Next elementt
例如,下面的子過程打開 Biblio.mdb,把每一個表的名字加到列表框中。

Sub ListTableDefs () Dim objDb As Database Dim MyTableDef as TableDef Set objDb = OpenDatabase("c:\vb\biblio.mdb", _ True, False) For Each MyTableDef In objDb.TableDefs () List1.AddItem MyTableDef.Name Next MyTableDef End Sub

  請記住使用 For Each...Next 時的幾點限制:

  (1)對集合,element 只能是 Variant 變量,或一般的 Object 變量,或“對象瀏覽器”中列出的對象。
  (2)對數組,element 只能是 Variant 變量。
  (3)For Each...Next 不能與用戶自定義類型的數組一起使用,因為 Variant 不可能包含用戶自定義類型。

二、條件語句------------------------------------------------------------------------------------------------

  關於作用域問題請參考VB中變量的作用域  

  1.簡單If條件語句 

 使用在稱之為分支結構的特殊語句塊中的條件表達式控制了程序中哪些語句被執行以及什么樣的執行次序執行。“If...Then”分支結構在程序中計算條件值,並根據條件值決定下一步執行的操作。最簡單的“If...Then”分支結構可以只寫在一行:

 If Condition Then Statement[Else statement] 

     注意:“If...Then”分支結構用於給程序添加邏輯控制能力。這里,“Condition”是個條件表達式,“Statement”是條件有效的Visual Basic語句。例如: 

     If Score>=20 Then Label1.Text="You Win!"是個使用了下述條件表達式的分支結構:Score>=20  根據這個表達式的值,程序決定是否把Label1對象的“Text”屬性設置為“You Win!”。如果“Score”變量的值大於等於20,Visual Basic設置該屬性的值,否則,Visual Basic跳過這條賦值語句,然后執行事件過程中的下一行語句。這類比較運算的結果不是“True”就是“False”,條件表達式從來不會產生模棱兩可的值。

  2.If...Then...Else語句 

  Visual Basic還支持另一種格式的“If...Then”分支結構,該結構中包含幾個條件表達式,由多行語句組成,其中包含了重要關鍵字“ElseIf”、“Else”以及“End If”。 

If Condition1 Then 
    'Statements 
ElseIf Condition2 Then 
     'Statements 
    '[其他ElseIf子句及其相應的執行語句] 
Else Statements End If

  這個結構中,“Condition1”首先被計算。如果這個條件表達式的值為“True”,那么這個條件表達式下的語句被執行;如果第一個條件的值不是“True”,那么計算第二個表達式(Condition2)的值,如果第二個條件的值為“True”,那么這個條件表達式下的語句塊被執行(如果要判斷更多的條件,那么繼續增加“ElseIf”子句及該子句下的語句塊);如果所有條件表達式的值都不是“True”,那么執行“Else”子句下的語句塊;最后,整個結構使用“End If”關鍵字結束。多行“If...Then”結構特別適合於分段計算問題,比如稅費方面的計算。

  下面的代碼展示了如何使用多行“If...Then”結構來確定遞進稅計算問題(收入和稅率的對應關系取自美國國內收入服務1997年稅率表):

If AdjustedIncome<=24650 Then
    '15%稅段 
    TaxDue=AdjustedIncome*0.15
ElseIf AdjustedIncome<=59750 Then    
    '28%稅段 
    TaxDue=3697+((AdjustedIncome-24650)*0.28) ElseIf AdjustedIncome<=124650 Then   
    '31%稅段 
    TaxDue=13525+((AdjustedIncome-59750)*0.31) ElseIf AdjustedIncome<=271050 Then    
    '36%稅段 
    TaxDue=33644+((AdjustedIncome-124650)*0.36) Else    
    '39.6%稅段 
    TaxDue=86348+((AdjustedIncome-271050)*0.396) End If

  注意:總是可以添加更多的“ElseIf”塊到“If...Then”結構中去。但是,當每個“ElseIf”都將相同的表達式比作不同的數值時,這個結構編寫起來很乏味。在這種情況下可以使用“Select Case”判定結構。  

  3.Select Case結構 

  Visual Basic還支持在程序中使用“Select Case”分支結構來控制語句的執行。 “Select Case”結構與“If...Then...Else”結構相似,但在處理依賴於某個關鍵變量或稱作測試情況的分支時效率更高。並且,使用“Select Case”結構可以提高程序的可讀性。“Select Case”結構的語法如下所示:

Select Case Variable Case Value1 Statements Case Value2 Statements Case Value3 Statements ... End Select

  “Select Case”結構以關鍵字“Select case”開始,以關鍵字“End Select”結束。“Select Case”結構中的“Variable”可以是變量、屬性或者是表達式,“Value1”、“Value2”,“Value3”可以是數值、字符串或與要測試的其他情況相關的其他值,如果其中某個值與變量相匹配,那么該“Case”子句下的語句被執行,然后Visual Basic執行“End Select”語句后面的語句。“Select Case”結構中可以使用任意多個“Case”子句,“Case”子句中也可以包括多個“Value”值,多個“Value”值之間使用逗號分隔。 

   下面示例展示了程序中如何使用“Select Case”結構打印與某人年齡相關的信息。當“Age”變量與某個“Case”值匹配時,相應的信息顯示在標簽對象中。

Select Case Age case 16 Label1.Text="You can drive now!" 
    Case 18 Label1.Text="You can vote now!" 
    Case 21 Label1.Text="You can drink wine with your meals." 
    Case 65 Label1.Text="Time to retire and have fun!" 
End Select

  注意:“Select Case”結構比功能等效的“If...Then”結構更清晰易讀。“Select Case”結構還支持“Case Else”子句,該子句可用於當不滿足所有“Case”條件時顯示信息。下面是說明“Case Else”子句用法的一個示例:

Select Case Age Case 16 Label1.Text="You can drive now!" 
    Case 18 Label1.Text="You can vote now!" 
    Case 21 Label1.Text="You can drink wine with your meals." 
    Case 65 Label1.Text="Time to retire and have fun!" 
    Case Else Label1.Text="You're a great age!Enjoy it!" 
End Select

  注意:“Select Case”結構每次都要在開始處計算表達式的值,而“If...Then...Else”結構為每個“ElseIf”語句計算不同的表達式,只有在“If”語句和每個“ElseIf”語句計算相同的表達式時,才能使用“Select Case”結構替換“If...Then...Else”結構。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM