Visual Basic 程序设计
第 5章
选择结构设计
万博科技职业学院
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




主要内容
? 选择结构的概念
? 条件表达式,比较运算和布尔运算
? 条件语句 If …
? 多分支选择语句 Select Case …
? 标准控件
– 单选按钮 OptionButton
– 复选框 CheckBox
– 定时器 Timer
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




选择结构的概念
? 用于分析、比较、判断。对不同情况要进
行不同的处理。
? 条件表达式由比较运算、布尔运算完成,
表达式的值为 True或 False
? 例:
1,x>=0 and x <=1 (0 ≤ x ≤ 1)
2,x>y and y>0 (x>y>o)
3,Not x>0 or x>5
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




比较运算
? 比较运算, < <= = >= > <>
? 数值之间比较,例 x!>0 等
注意:对浮点(单精度、双精度)数不要
进行 =(等于)比较,如
x!=3.45 -不可靠
? 字符串(可以包含汉字及其他文字、符号)
之间比较按内码大小,从第 1个字符开始。
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




逻辑运算
A B Not A A AndB A Or B A Xor B A Equ B A ImpB
F F T F F F T T
F T T F T T F T
T F F F T T F F
T T F T T F T T
注,1,A,B均为逻辑表达式。如果是数值,则其值
非零时看作 True,值为零时看作 False。
例如:表达式 4>3 And 5>4 的值为 True
2,F - False,T - True
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




单行 If 语句
格式:
If 条件 Then 语句 1 [ Else 语句 2 ]
例:
1,If a<0 Then a=-a
2,If x>=0 Then y=sqr(x) Else y=-x
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




多行 If 语句
格式,
If <条件 1> Then
[语句块 1]
[ElseIf <条件 2>
语句块 2]…
[Else
语句块 3]
End If
条件 1
End If 后
下个语句
语句块 1
True
False
条件 2
语句块 3
False
语句块 2
True
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




多行 If 语句
格式,
If <条件 > Then
[语句块 ]
[ElseIf <条件 >
语句块 ]…
[Else
语句块 ]
End If
例,
d=InputBox(“请输入你的出生
日期, )
If Isdate(d) Then
Msgbox,你出世已有, _
& Date-cdate(d) &,天,
Else
Msgbox,输入错误!,
End If
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




Select Case语句
? 格式,
Select Case <测试表达式 >
[Case <取值范围表达式表 >
<语句块 >]…
[Case Else
<语句块 >]
End Select
? 用途,多分支选择
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




Select Case语句流程图
Select Case <表达式 >
Case ① Case ②No Case ③No
End Select 的下个语句
语句块 4
No ( Case Else)
①②③ 为表达式取值范围,可为:
?常量或常量列表,如 10,20
?值 1 To 值 2 如 30 To 50
? Is <比较符 > 常量,如 Is>50
语句块 1
Yes
语句块 2
Yes
语句块 3
Yes
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




例 1:按得分定等级
Select Case cj
Case 100 ‘如果成绩 cj=100
lev=“满分,
Case is >= 90 ‘如果 cj>=90
lev =,优秀,
Case 75 to 89 ‘如果 cj 在 75 与 89 之间
lev =,良好,
Case 60 to 74 ‘如果 cj 在 60 与 74 之间
lev =,及格,
Case Else ‘其他情况
lev=“不及格,
End Select
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




例 2:判断输入字符类型
? 程序功能:在文本框中输入一串字符,在
输入同时判别输入字符的类型,并显示在
一个标签中。同时统计不同类别字符的个
数。
? 类别分:大写字母、小写字母、数字、韵
母 (a,e,i,o,u)、汉字、其他。

万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




输入字符类别判断
Select Case c
Case "A","E","I","O","U"
t = "大写韵母 "
Case "A" To "Z"
t = "大写字母 "
Case "a","e","i","o","u"
t = "小写韵母 "
Case "a" To "z"
t = "小写字母 "
Case "0" To "9"
t = "数字 "
Case Is > "~"
t = "汉字 "
Case Else
tp = "其他字符 "
End Select
Text1.Text=t
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




例 3:信号灯
运行
Private Sub Timer1_Timer()
a = (a + 1) Mod 6
Select Case a
Case 0,1,2
P1.Picture = Image1.Picture 'red
Case 3
P1.Picture = Image2.Picture 'yellow
Case Is > 3
P1.Picture = Image3.Picture 'green
End Select
End Sub
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




Frame(框架)
Frame( 框架 ) 是一个容器 。 用于把其他
的控件组织在一起 。 当框架移动, 隐藏时,
其包容的控件也都跟着移动, 隐藏 。
框架的常用属性有:
Caption - 设置框架标题, 使用户了解框架
的用途 。
Enabled - 设置框架是否有效 。
Visible - 设置框架是否可见 。
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




OptionButton(单选按钮)
? 用于从多个可选项中选择其中之一。
? 主要属性:
– Caption 标题
– Value 值,布尔量。 True-选中,False-不选
– Style 外观:
? Standerd-标准方式,圆形
? Graphical-图形方式,象按钮
? 多个选项应在同一个容器中:
– 窗体( Form)
– 框架( Frame)
– 图片框( PictureBox)
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




CheckBox(复选框)
? 主要属性:
– Caption:标题,用于说明。
– Value:值,可取:
?0- UnChecked,不选
?1- Checked,全选
?2- Grayed,部分选中
?单击复选框时,不会选 2
– 纠错,P.100,第 7行
? 复选框之间无制约。 实例
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




Timer(定时器)
?关键属性:
? Enabled:
?True:定时器处于工作状态 。
?False:处于待命状态 。
? Interval,时间间隔周期(毫秒数 )。
如果 Interval= 0,也不会发生 Timer事件。
?Timer事件:定时时间到 。 重新计时 。
?应用于:计时, 动画等 例
万 博 科 技 职 业 学 院
Wanbo Inst,Of Since & Tech.
Vi
su
al
BA
SI
C




颜色及有关常量及函数
? 颜色值用长整型数表示,如:
蓝色,&H00FF0000&
绿色,&H0000FF00&
红色,&H000000FF&
? 内置颜色函数:
RGB(red,green,blue) red,green,blue,0~255
QBColor(n) n=0,1,2,…,15
? 颜色常量,vbRed,vbBlue,vbBlack等