vb选择结构select
- 格式:doc
- 大小:51.00 KB
- 文档页数:63
vb选择结构select
选择结构
一、单分支的if语句
1、格式
[1] If 表达式 Then
语句块
End if
[2] If 表达式 Then语句块
2、功能:
3、说明:
(1)“表达式”一般为关系或逻辑表达式。
(2)“语句块”可以是任意多个语句,只不过“格式[2]”中的多个语句之间必须用:隔开,书写在同一行。此时,“End if”可以省略。
4、举例:
例1:任意读入两个整数,从小到大输出这两个数。
Private Sub Command1_Click()
Dim a As Integer, b%
a = InputBox("请输入一个整数:")
b = InputBox("请输入一个整数:")
If a > b Then
Print b; a
End If
If b >= a Then
Print a; b
End If
End Sub
5、InputBox函数
(1)简单格式
InputBox("提示信息")
(2)使用格式(赋值语句)
变量= InputBox("提示信息")
(3)功能:从键盘上接受一个数据,然后赋值给某个变量(即读入一个任意值,保存到某变量中。
(4)用InputBox函数输入的数据默认为字符型,但由于赋值语句的特点“右
边服从左边”,通常会自动转换成相应类型值之后再赋值给变量。
例如:
Private Sub Command1_Click()
'a,b不定义就使用,被认为是变体型
a = InputBox("请输入一个整数:")
b = InputBox(请输入一个整数:")
If a > b Then Print b, a
If b >= a Then Print a, b
End Sub
输入的是“9”和“12”
则会被当成字符串"9"和字符串"12",
赋值给a和b,而字符串按其ASCII码值比较大小(字典序)。
因此,“变量最好先定义再使用”
二、双分支if语句
1、格式
[1] If 表达式 Then
语句块1
Else
语句块2
End if
[2]
If 表达式 Then 语句块1 Else 语句块2
2、功能
3、说明
格式[1]中Else独立占一行!
4、举例
改写上例:
Option Explicit
Private Sub Command1_Click()
Dim a%, b%
a = InputBox("请输入一个整数:")
b = InputBox("请输入一个整数:")
If a > b Then
Print b, a
Else
Print a, b
End If
End Sub
[法二]让a中存放较小数,b中存放较大数。
Option Explicit
Private Sub Command1_Click()
Dim a%, b%, t As Integer
a = InputBox("请输入一个整数:")
b = InputBox("请输入一个整数:")
If a > b Then '交换二者的值
t = a
a = b
b = t
End If
Print a, b
End Sub
*重要基本算法:两数交换借助第三数。
类似于两水杯交换其中的内容,借助第
三个空杯子,最终空杯子依然是空的。但是,中间变量t却保存了a或b的值。只是没用。
例2:任意读入3个整数,从小到大输出这3个数。
[算法提示:让a中放最小数,c中放最大数]
Option Explicit
Private Sub Command1_Click()
Dim a%,b%,c%,t%
A=inputbox(“:”)
b=inputbox(“:”)
c=inputbox(“:”)
if a>b then
t=a:a=b:b=t
end if
if a>c then
t=a:a=c:c=t
end if
if b>c then
t=b:b=c:c=t
end if
print a;b;c
End Sub
三、多分支if语句
1.格式
If 表达式1 then
语句块1
Elseif 表达式2 then
语句块2
Elseif 表达式3 then
语句块3
……
Else
语句块n
End if
2.功能
3.说明
(1)各“表达式”通常为关系(>、=
等)表达式、逻辑表达式(Not、And、Or)
(2)Else子句可以省略(但一般不省),
省略之后可能一个分支都不被执行。
(3)各分支中最多只会有一个分支被执行到。
4.应用举例
例2、商场打折:满500元打5折;满300不足500打6折;满200不足300打7折;满100不足200打8折;其余不打折。请为收银员编程,输出顾客应付款。
Option Explicit
Private Sub Command1_Click()
Dim cost As Single, x As Single
'x表示商品原价
x = InputBox("读入原价")
If x >= 500 Then
cost = x * 0.5
ElseIf x >= 300 Then
cost = x * 0.6
ElseIf x >= 200 Then
cost = x * 0.7
ElseIf x >= 100 Then
cost = x * 0.8
Else
cost = x
End If
Print "应付款:"; cost
End Sub
[注意:对变量的判断,最好按从小到大或从大到小的顺序书写。]
例3、批发铅笔:满500支打5折;满300不足500打6折;满200不足300打7折;满100不足200打8折;其余不打折。每支铅笔原价1元。请为收银
员编程,输出顾客应付款。
[法一:同前例]
[法二:用Select Case语句]
四、Select Case语句(多分支)
1.格式
[格式一]
Select case 表达式
Case 表达式1:语句块1
Case 表达式2:语句块2
Case 表达式3:语句块3
……
Case Else:语句块n
End Select
[格式二]
Select case 表达式
Case 表达式1
语句块1
Case 表达式2
语句块2
Case 表达式3
语句块3
……
Case Else
语句块n
End Select
2.功能
3.说明:
(1)Select case后的表达式通常为常
量、变量或算术表达式
(2)而Case后的若干表达式只能是如下几种形式:
①单个常量(对应“Select case后的表达式”与该常量是否相等的判断)
②多个常量,两两之间用逗号隔开(对
应“Select case后的表达式”与该多个常量中的某一个是否相等的判断)
③常量1 To 常量2
(对应“常量1≤‘Select case后的表达式’≤常量2”的判断)
④Is 关系运算符 数值
(对应
‘Select case后的表达式’> 数值或
‘Select case后的表达式’< 数值或
‘Select case后的表达式’≥数值或
‘Select case后的表达式’≤数值或
‘Select case后的表达式’= 数值或
‘Select case后的表达式’<>数值
)
【 判断“select case 后的表达式”是否落在某case后所表示的范围内。
各case分支后的范围不要重合,更不能矛盾。】
例1:某商场刚开业,前10名或1000名之后打6折;第18名、28名打5折;第888名打1折;100名~200名打5.5折; 其余打8折。
Private Sub Command1_Click()
Dim yj As Single, xh As Integer
Dim cost As Single
yj = InputBox("输入原价:")
xh = InputBox("输入序号:")
Select Case xh
Case 888: cost = yj * 0.1
Case 18, 28: cost = yj * 0.5