vb选择结构select.docx
《vb选择结构select.docx》由会员分享,可在线阅读,更多相关《vb选择结构select.docx(12页珍藏版)》请在冰豆网上搜索。
vb选择结构select
选择结构
一、单分支的if语句
1、格式
[1]If表达式Then
语句块
Endif
[2]If表达式Then语句块
2、功能:
3、说明:
(1)“表达式”一般为关系或逻辑表达式。
(2)“语句块”可以是任意多个语句,只不过“格式[2]”中的多个语句之间必须用:
隔开,书写在同一行。
此时,“Endif”可以省略。
4、举例:
例1:
任意读入两个整数,从小到大输出这两个数。
PrivateSubCommand1_Click()
DimaAsInteger,b%
a=InputBox("请输入一个整数:
")
b=InputBox("请输入一个整数:
")
Ifa>bThen
Printb;a
EndIf
Ifb>=aThen
Printa;b
EndIf
EndSub
5、InputBox函数
(1)简单格式
InputBox("提示信息")
(2)使用格式(赋值语句)
变量=InputBox("提示信息")
(3)功能:
从键盘上接受一个数据,然后赋值给某个变量(即读入一个任意值,保存到某变量中。
(4)用InputBox函数输入的数据默认为字符型,但由于赋值语句的特点“右边服从左边”,通常会自动转换成相应类型值之后再赋值给变量。
例如:
PrivateSubCommand1_Click()
'a,b不定义就使用,被认为是变体型
a=InputBox("请输入一个整数:
")
b=InputBox(请输入一个整数:
")
Ifa>bThenPrintb,a
Ifb>=aThenPrinta,b
EndSub
输入的是“9”和“12”
则会被当成字符串"9"和字符串"12",赋值给a和b,而字符串按其ASCII码值比较大小(字典序)。
因此,“变量最好先定义再使用”
二、双分支if语句
1、格式
[1]If表达式Then
语句块1
Else
语句块2
Endif
[2]
If表达式Then语句块1Else语句块2
2、功能
3、说明
格式[1]中Else独立占一行!
4、举例
改写上例:
OptionExplicit
PrivateSubCommand1_Click()
Dima%,b%
a=InputBox("请输入一个整数:
")
b=InputBox("请输入一个整数:
")
Ifa>bThen
Printb,a
Else
Printa,b
EndIf
EndSub
[法二]让a中存放较小数,b中存放较大数。
OptionExplicit
PrivateSubCommand1_Click()
Dima%,b%,tAsInteger
a=InputBox("请输入一个整数:
")
b=InputBox("请输入一个整数:
")
Ifa>bThen'交换二者的值
t=a
a=b
b=t
EndIf
Printa,b
EndSub
*重要基本算法:
两数交换借助第三数。
类似于两水杯交换其中的容,借助第三个空杯子,最终空杯子依然是空的。
但是,中间变量t却保存了a或b的值。
只是没用。
例2:
任意读入3个整数,从小到大输出这3个数。
[算法提示:
让a中放最小数,c中放最大数]
OptionExplicit
PrivateSubCommand1_Click()
Dima%,b%,c%,t%
A=inputbox(“:
”)
b=inputbox(“:
”)
c=inputbox(“:
”)
ifa>bthen
t=a:
a=b:
b=t
endif
ifa>cthen
t=a:
a=c:
c=t
endif
ifb>cthen
t=b:
b=c:
c=t
endif
printa;b;c
EndSub
三、多分支if语句
1.格式
If表达式1then
语句块1
Elseif表达式2then
语句块2
Elseif表达式3then
语句块3
……
Else
语句块n
Endif
2.功能
3.说明
(1)各“表达式”通常为关系(>、=等)表达式、逻辑表达式(Not、And、Or)
(2)Else子句可以省略(但一般不省),
省略之后可能一个分支都不被执行。
(3)各分支中最多只会有一个分支被执行到。
4.应用举例
例2、商场打折:
满500元打5折;满300不足500打6折;满200不足300打7折;满100不足200打8折;其余不打折。
请为收银员编程,输出顾客应付款。
OptionExplicit
PrivateSubCommand1_Click()
DimcostAsSingle,xAsSingle
'x表示商品原价
x=InputBox("读入原价")
Ifx>=500Then
cost=x*0.5
ElseIfx>=300Then
cost=x*0.6
ElseIfx>=200Then
cost=x*0.7
ElseIfx>=100Then
cost=x*0.8
Else
cost=x
EndIf
Print"应付款:
";cost
EndSub
[注意:
对变量的判断,最好按从小到大或从大到小的顺序书写。
]
例3、批发铅笔:
满500支打5折;满300不足500打6折;满200不足300打7折;满100不足200打8折;其余不打折。
每支铅笔原价1元。
请为收银员编程,输出顾客应付款。
[法一:
同前例]
[法二:
用SelectCase语句]
四、SelectCase语句(多分支)
1.格式
[格式一]
Selectcase表达式
Case表达式1:
语句块1
Case表达式2:
语句块2
Case表达式3:
语句块3
……
CaseElse:
语句块n
EndSelect
[格式二]
Selectcase表达式
Case表达式1
语句块1
Case表达式2
语句块2
Case表达式3
语句块3
……
CaseElse
语句块n
EndSelect
2.功能
3.说明:
(1)Selectcase后的表达式通常为常量、变量或算术表达式
(2)而Case后的若干表达式只能是如下几种形式:
①单个常量(对应“Selectcase后的表达式”与该常量是否相等的判断)
②多个常量,两两之间用逗号隔开(对应“Selectcase后的表达式”与该多个常量中的某一个是否相等的判断)
③常量1To常量2
(对应“常量1≤‘Selectcase后的表达式’≤常量2”的判断)
④Is关系运算符数值
(对应
‘Selectcase后的表达式’>数值或
‘Selectcase后的表达式’<数值或
‘Selectcase后的表达式’≥数值或
‘Selectcase后的表达式’≤数值或
‘Selectcase后的表达式’=数值或
‘Selectcase后的表达式’<>数值
)
【判断“selectcase后的表达式”是否落在某case后所表示的围。
各case分支后的围不要重合,更不能矛盾。
】
例1:
某商场刚开业,前10名或1000名之后打6折;第18名、28名打5折;第888名打1折;100名~200名打5.5折;其余打8折。
PrivateSubCommand1_Click()
DimyjAsSingle,xhAsInteger
DimcostAsSingle
yj=InputBox("输入原价:
")
xh=InputBox("输入序号:
")
SelectCasexh
Case888:
cost=yj*0.1
Case18,28:
cost=yj*0.5
Case100To200:
cost=yj*0.55
CaseIs>=1000,Is<=10
cost=yj*0.6
CaseElse:
cost=yj*0.8
EndSelect
Print"您是第";xh;"号顾客,应付款打折后:
";cost
EndSub
例2:
由两数乘积是否为0,判断两数为0的情况。
PrivateSubCommand1_Click()
Dimx%,y%
x=InputBox("x:
")
y=InputBox("y:
")
SelectCasex*y
Case0'与CaseIs=0等价
Print"x和y至少有一个为0"
CaseIs<>0
Print"x和y都不为0"
EndSelect
EndSub
(3)CaseElse分支可以省略,但省略后可能一个分支都不被执行。
(4)“格式一”一般在各“语句块”为单个语句时用
(5)当SelectCase后的表达式的值落在某表达式围时,就执行其所对应分支
改写前例1、“读入成绩代号(A~E),输出对应分数围。
”
OptionExplicit
PrivateSubCommand1_Click()
DimfsAsString
fs=InputBox("读入成绩A~E!
")
SelectCasefs
Case"A":
Print">=90!
"
Case"B":
Print"80-89"
Case"C":
Print"70-79"
Case"D":
Print"60-69"
Case"E":
Print"<60"
CaseElse:
Print"输入有错!
!
!
"
EndSelect
EndSub
改写前例3“铅笔批发”
OptionExplicit
PrivateSubCommand1_Click()
DimnAsInteger'n表示铅笔支数
DimcostAsSingle
n=InputBox("输入铅笔支数")
SelectCasen\100
CaseIs>=5:
cost=n*0.5
Case3,4:
cost=n*0.6
Case2:
cost=n*0.7
Case1:
cost=n*0.8
CaseElse:
cost=n
EndSelect
Print"购买";n;"支铅笔应付款:
";cost;"元"
EndSub
补充:
对新文件的保存,只需按“保存”按钮,按出现的两个对话框的提示保存窗体(.frm)、工程文件(.vbp)。
*对老文件的重新保存(或改变其名字、或改变其位置),
(1)选择“文件”“工程另存为”,在弹出的对话框中修改.vbp文件的主名或位置;
(2)选择“文件”“….frm另存为”,在弹出的对话框中修改.frm文件的主名或位置。
*文本框的使用:
能帮助完成输入、输出!
1、属性
(1)Text属性有一个默认值,建议在设计时就删除
(2)Nam