第 5章 选择结构程序设计
人民邮电出版社
21世纪高等学校计算机基础教育系列教材选择结构程序设计
If 结构在某些条件成熟的情况下才能解决下一个问题,在表达的时候就会有“如果 …… 就 ……” 或者
“如果 …… 就 ……,
否则 …… 就 ……” 的说法,这些表达方法表示成计算机语言,If…Then…” 结构或者,If…
Then …Else…” 结构。
单分支结构
( If …
Then … 语句)
这种结构的语法为:
If <条件表达式 > Then
语句块
End If
这种结构的程序流程图为:
T
F
条件表达式语句块开始 (start)
……
……
结束 (End)
选择结构程序设计这种结构的语句形式:
If <条件表达式 >
Then
语句块 1
Else
语句块 2
End IF
这种结构的流程图如下图所示:
T
F
条件表达式语句块 1
开始
……
……
结束语句块 2
双分支结构这种结构就是人们常说的“如果 ……
就 ……,否则就 ……”
的问题,这类问题转化成计算机语言就是双分支结构 If …
Then …
Else… 语句多分支结构 ( If … Then … ElseIf … 语句)
多分支结果是双分支结构的一种特例,就是在双分支结构的第二个分支中在加上几个分支,达到多重条件的判断。它的语法可以表示如下:
If <条件表达式 1> Then
语句块 1
ElseIf <条件表达式 2> Then
语句块 2
ElseIf <条件表达式 3> Then
语句块 3
……
[Else
语句块 n+1 ]
End If 这种结构的程序流程图见下页选择结构程序设计选择结构程序设计
T
F
条件表达式 1
语句块 1
开始 (start)
……
……
结束 (End)
F
F
T
条件表达式 2
语句块 2 T
条件表达式 n
语句块 n
……
语句块 n+1
If...Goto结构
Visual Basic提供了一种控制 If...goto
语句,这种控制语句主要用于程序的出错处理或者是根据条件提前结束程序的操作。这种语句的格式是:
If<表达式 > goto 行号 /标签
<程序段 1>
行号 /标签:
<程序段 2>
当表达式的值为“真”时,程序跳到行号 /标签处,继续执行程序段 2,
否则将就先执行程序段 1,然后再执行程序段 2。这种结构就相当于单分支的选择结构。
选择结构程序设计
Private sub form_click
()
Dim x as integer
X=val(inputbox(“请输入一个整数 x”))
If x>=10 goto exits
x=x^2+2*x+32
print x
exits:
x=x+100
print x
End sub
嵌套结构在一个 If … Then … Else 结构的一个或者几个语句块中包含一个或若干个 If … Then … Else 结构的语句称为嵌套结构。这种结构的语法可以表示如下:
If <条件表达式 > Then
[If <条件表达式 > Then

Else

End If]
Else
[If <条件表达式 > Then

Else

End If]
End If
选择结构程序设计实际上可以看出,这里只是用一个 If … Then … Else 结构代替了前面的单分支结构或双分支结构中的语句块而已。这里要注意的就是其中的关键字的个数的匹配,
也就是说一个 If一定要和一个 End
If相匹配,否则程序将会出错。
Select case 结构这种结构就是根据我们对于一个事件的不同的选择而使其出现不同的结果。实际上是对多分支结构的另一种表达方式,目的就在于增强程序的可读性,它的理解方法完全和上面所讲述的多分支结构一样,只是在语法上有一定的不同。这种结构的语法结构如下所示,下图是这种结构的程序流程图。
Select case 表达式
Case 常量表达式 1
语句块 1
Case 常量表达式 2
语句块 2
……
[Case Else
语句块 n+1 ]
End select 这种结构的程序流程图见下页选择结构程序设计选择结构程序设计
……
开始 ( start )
选择条件 ( select case ) 表达式常量表达式 1成立,
执行语句块 1
常量表达式 2成立,
执行语句块 2
常量表达式 n+1成立,
执行语句块 n+1
……
……
结束( End)
End select
条件函数在 Visual Basic中还提供了两个条件函数,这两个函数分别是,IIF函数和 Choose函数,用 IIF函数代替 IF语句,用 Choose函数代替
select case语句,但是这两个函数只能用于简单的判断场合。
1) IIF函数
IIF函数的形式:
IIF(表达式,条件为真( true)的值,条件为假( false)的值)
例如:判断税率的程序可以写成如下,10万元以上扣除 15%,10万元以下扣除 10%,写成程序就是:
TaxRate = IIF( money > 10,0.15,0.1)
Tax = TaxRate * money
求两个数中较小的一个的程序代码,
Min = IIF (x>y,y,x)
选择结构程序设计
Choose函数
Choose函数的形式,
Choose(Nvar,ret1,ret2,……)
其中,Nvar是一个数值类型的变量,ret1是当 Nvar为 1时的返回值,ret2
是当 Nvar为 2时的返回值,等等以此类推。
例如:可以根据我们输入的数字来判断运算符的种类:
Nop =InputBox(“请输入运算符号码”)
Op =choose( Nop,,+”,,-”,,*”,,/”,,^”)
这里当输入 1时,op的值为,+”,2时为,-”等等。注意当输入不在 1---5
之间时,函数将返回一个 NULL值;当输入的是一个小数时,系统将先对这个小数取整。然后进行判断运算。
选择结构程序设计
On-goto语句
On-goto类似于 select case语句,用来实现多分支的结构控制,可以根据不同的条件从多种处理方案中选择一种方案执行。这种语句的结构是:
On 数值表达式 GoTo 行号列表 |标签列表该语句的功能是:根据“数值表达式”的值,将其四舍五入处理后得到一个整数,然后根据这个整数的值决定自己转移到第几个行号 |标签处继续执行。行号列表 |标签列表中的每两个行号 |标签之间用逗号隔开。例如:
On ( x+y) /2 goto 23,12,line2,line5,exits
这个语句执行的情况是:
当( x+y) /2=1时,程序从标签为 23的那一行开始往后执行;
当( x+y) /2=2时,程序从标签为 12的那一行开始往后执行,以此类推。
选择结构程序设计
On error goto语句该语句的功能是启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。
如果不使用 On Error 语句,则任何运行时错误都是致命的;也就是说,
结果会导致显示错误信息并中止运行。
该语句的语法是:
On Error GoTo 行号 |标签启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。
line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,
这个过程与 On Error 语句相同; 否则会发生编译时间错误。
On Error Resume Next
说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On
Error GoTo
On Error GoTo 0禁止当前过程中任何已启动的错误处理程序。
选择结构程序设计
1,关系运算符
VB提供的关系运算符有以下 6种,如表 4-1所示 。
2,关系表达式关系表达式的格式为
〈 表达式 1〉 〈 关系运算符 〉 〈 表达式 2〉 [〈 关系运算符 〉 〈 表达式 3〉 … ]
运算符的优先顺序