VB考试教程:VisualBasic中的过程控制
文章作者 100test 发表时间 2007:03:10 18:28:22
来源 100Test.Com百考试题网
如果不使用程序流程控制语句,程序的执行是简单的从上到下顺序执行的单向流程。这种程序结构所完成的工作功能有限。
过程控制可以分为三个主要的部分:转支(Branching,也称跳转)、循环(Iteration)和条件执行(Condtion execution)。
转支是最基本的一种过程控制,它实际上就是一种跳转的机制,从程序中的一个代码段跳到另一个代码段,而不执行中间的步骤。
循环是指在程序中重复执行一套指令,并且当达到一定次数或者条件时停止。在VB中有三种循环指令。
条件执行是指在程序中,当某些条件为真时,允许执行一系列指令,如果条件为假,则执行另外的指令。这就给程序提供了逻辑判断能力。
一、跳转控制
跳转——从程序的某一行到另一行的直接转移。
它有两种形式:无条件跳转和有条件跳转。
无条件转向语句“Goto”的一般形式:
Goto 语句标号(或行号)
注意:
1)语句标号或行号必须存在,否则会出现错误。Goto语句标号的命名规则与变量名相同。
2)“标号”是一个以冒号结尾的标识符;“行号”是一个整形数,它不以冒号结尾。例如:
Start:
是一个标号,而
1200
是一个行号。
例(见教材P62):
Sub Form_Click ()
Print "She is "
Goto Message
Print "not"
Message:
Print "a beautiful girl ."
End Sub
本语句不易实现结构化程序设计,所以不提倡使用。
二、条件结构
在VB过程中可以进行条件测试,然后根据测试结果去执行不同的操作。VB提供以下几种格式的条件语句:If语句、Select Case语句。
1、If语句
(1)If 条件 Then 语句1 [Else 语句2]
这种语句称为单行条件语句。如果条件为真,执行Then后面的语句;如果条件为假,则执行Else后面的语句(语句2)。
说明:
- 语句1和语句2都可以是若干条语句(语句之间用“:”号隔开);
- 单行语句必须写在一个程序行内;
- 其中“Else 语句2”可以省略,省略格式的功能是:当If后的条件成立时,执行Then后面的语句,若不成立,则执行条件语句的下一个程序行。
例如:
Private Sub Command1_Click()
Dim intAge As Integer
intAge = InputBox("aaa", "bb")
If intAge > 23 Then Print "您已经超龄,无法入选国奥队!"
End Sub
(2)If 条件 Then
语句块1
[Else
语句块2]
End If
这种结构称为简单块If结构。它是这样执行的:
如果条件为真,执行Then后面的语句块1,否则,则执行Else后面的语句块2;若不写Else部分,则执行End If后面的语句。
例如:
If intAge >23 then
Print"您已经超龄,无法入选国奥队"
Print "感谢您对中国足球的关怀"
End If
(3)If 条件1 Then
语句块1
Else If 条件2 Then
语句块2
:
:
Else If 条件n Then
语句块n
[Else
默认语句块]
End If
这种结构称为块If结构。它是这样执行的:
先测试条件1,如果条件1成立,则执行Then后面的语句块1;如果条件1不成立,则继续检测条件2,如果条件2成立,则执行Then后面的语句块2;……。如此测试下去。如果所有条件都不成立,则执行Else后面的默认语句块(如果存在的话,否则,跳到End If下一条语句执行)。这里的n>=2。
注意:
在判定结构中使用的“条件”通常是比较语句(关系运算符,如>、<、<>、=等)。如果要使用更加复杂的条件,可以使用逻辑运算符(And、Or、Not)来连接几个比较语句,例如:
If intAge<23 And strCountry="china" And intSkill>10 Then
Print "欢迎您到国奥队来!"
:
:
End If
2、 Select Case
与If…Then…E1se语句相似,Visual Basic还提供了Select Case结构来实现多分支结构,从而对在多个语句块中有选择地执行其中—个。Select Case语句的能力与If…Then…E1se语句类似,但对多重选样的情况,Select Case语句使代码更加清楚易懂,而且执行也比较快速。Select Case的语法结构是:
Select Case 测试条件
Case 表达式1
语句序列1
[Case 表达式2
语句序列2]
:
:
:
[Case Else
默认序列 ]
End Select
Select Case在结构的上方处理一个测试表达式并只计算一次(在Select Case语句中如果不止一个Case与测试表达式相匹配,则只对第一个匹配的Case执行与之相关联的语句块)。然后VB将表达式的值与结构中的每个Case的值进行比较,如果相等,就执行与该Case相关联的程序段;如果都不相等则执行Case Else对应的默认程序段;如果这时没有定义Case Else子句,则不执行任何分支退出(即执行End Select语句的下一条语句)。Case Else 虽然是选择性的,但是最好使用,以防遗漏测试数据。