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