第8章 Visual Basic控制结构
本章主要考查Visual Basic程序设计常用的控制结构,包括分支控制结构、循环控制结构和GoTo型控制结构。通过对历年试卷内容的分析,本章考核内容约占10%,属于一般考查对象。本章内容下次考试将有上升趋势。
8.1 分支控制结构
8.1.1 考点1:单行结构条件语句
单行条件语句的格式如下:
If 条件 Then then 部分 [Else else 部分]
其功能为:如果“条件”为True,则执行“then部分”,否则执行“else部分”。其中的“else部分”是可选的,当其省略时,If语句简化为:
If 条件 Then then 部分
其功能为:如果“条件”为True,则执行“then部分”,否则执行下一行程序。
条件语句中的“then部分”和“else部分”都可以嵌套,其深度(嵌套层数)没有具体规定,但受到每行字符数(1024)的限制。当嵌套层数较多时,应注意嵌套的正确性,一般原则是:每一个“Else”部分都与它前面未曾被配对的“If-Then”配对。
例8.1.1 当x=-5时,执行下述代码后,x的值为( )。
If x >= 0 Then If x > 0 Then y = 1 Else y = 0 Else y = -1
A.1
B.0 C.-1
D.以上都不正确
答案:C
8.1.2 考点2:块结构条件语句
块结构条件语句与C、Ada等语言中的条件语句类似,一般格式如下:
If 条件1 Then
语句块1
[ElseIf 条件2 Then
语句块2]
[ElseIf 条件3 Then
语句块3]
……
[Else
语句块n]
End If
其功能为:如果“条件1”为True,则执行“语句块1”;如果“条件2”为True,则执行“语句块2”……则执行“语句块n”。
该语句中的“语句块”可以是一个语句,也可以是多个语句。当是多个语句时,可以分别写在多行里;如果写在一行中,则各语句之间用冒号隔开。
说明:
该语句中的“条件1”、“条件2”等都是逻辑表达式,通常数值表达式和关系表达式都是逻辑表达式的特例。
“语句块”中的语句不能与前面的Then在同一行,否则Visual Basic认为是一个单行结构的条件语句。
在块结构的条件语句中,ElseIf子句的数量没有限制,可以根据需要加入任意多个ElseIf子句。
块结构条件语句中的ElseIf子句和Else子句都是可选的。
当If结构体内有多个条件为True时,Visual Basic执行第一个为True的条件后面的语句块。
块形式的条件语句可以嵌套,嵌套时必须完全“包住”,不能互相“骑跨”。
例8.1.2 函数A()、B()、C()分别实现三种不同的功能,令X=1、Y=-4、Z=0,那么下述代码的功能是( )。
If (X>0)Then
A()
ElseIf (Y<10)Then
B()
ElseIf (Z<3)Then
C()
End If
A.执行函数A()
B.执行函数B()
C.执行函数C()
D.以上都不正确
答案:A
8.1.3 考点3:IIf函数
IIf函数可以用来执行简单的条件判断操作,它是“If…Then…Else”结构的简写版本,是“Immediate If”的缩略。其格式如下:
result=IIf(条件,True 部分,False 部分)
其中,“result”是函数的返回值,“条件”是一个逻辑表达式。当“条件”为真时,IIf函数返回“True部分”,否则返回“False部分”。“True部分”或“False部分”可以是表达式、变量或其他函数。该函数与C语言中“?:”运算符的功能相似,可以使程序大为简化。
例8.1.3 设a=“a”,b=“b”,c=“c”,d=“d”,执行语句x=IIf((ad),“A”,“B”)后,x的值为( )。[2005年4月 选择第15题]
A.“a”
B.“b”
C.“B”
D.“A”
答案:D
重要提醒:使用IIf函数时,其中的三个参数都不可以省略,而且要求“True 部分”、“False 部分”及结果变量的类型一致。此外,由于IIf要计算“True部分”和“False部分”,因此有可能会产生副作用。
8.1.4 考点4:多分支控制结构
多分支控制结构由情况语句(Select语句或Case语句)构成,它可以根据一个表达式的值,在一组相互独立的可选语句序列中挑选要执行的语句序列。情况语句是块形式条件语句的一种变形,其格式如下:
Select Case 测试表达式
Case 表达式表列1
[语句块2]]
[Case 表达式表列2
[语句块2]]
……
[Case Else
[语句块n]]
End Select
其功能是,根据“测试表达式”的值,从多个语句块中选择符合条件的一个语句块执行。其中,“测试表达式”可以是数值表达式或字符串表达式,通常称为变量或常量;“语句块1、语句块2……语句块n”由一行或多行合法的Visual Basic语句组成。“表达式表列1、表达式表列2……表达式表列n”称为域值,可以采用下述三种形式:表达式[,表达式]、表达式To表达式、Is关系运算表达式。
对于这种控制结构,需要掌握以下几点:
Select Case语句与If…Then…Else语句块的功能类似,二者可以互换使用。
和C语言不同,如果同一个域值的范围在多个Case子句中出现,则只执行符合要求的第一个Case子句的语句块。
Case Else子句必须放在所有的Case子句之后,如果Select Case结构中任何一个Case子句都没有与测试表达式相匹配的值,而且也没有Case Else子句,则不执行任何操作。
在不同的Case子句中指定的条件和相应的操作不能相互矛盾。
例8.1.4 在窗体上画1个命令按钮(名称为Command1)和1个文本框(名称为Text1),然后编写如下事件过程:
Private Sub Command1_Click()
x=Val(Text1.Text)
Select Case x
Case1,3
y=x*x
Case Is>=10,Is<=-10
y=x
Case-10 To 10
y=-x
End Select
End Sub
程序运行后,在文本框中输入3,然后单击命令按钮,则以下叙述中正确的是( )。[2006年4月 选择第20题]
A.执行y=x*x
B.执行y=-x
C.先执行y=x*x,再执行y=-x
D.程序出错
答案:A
重要提示:“表达式表列”中的三种形式,在使用时需要注意以下几点:
关键字To用来指定一个范围,此时,必须把较小的值写在前面,较大的值写在后面,字符串常量的范围必须按字母的顺序写出。
如果使用关键字Is,则只能用关系运算符,并且条件只能是简单条件,不能用逻辑运算符将两个或多个简单条件组合在一起。
在一个Select Case语句中,三种形式可以混用。
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15080520号-20 珠峰网 版权所有 All Rights Reserved
|