当前位置:文档之家› vb选择结构select

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 IfIf b >= a Then Print a; b End IfEnd Sub5、InputBox函数(1)简单格式InputBox("提示信息") (2)使用格式(赋值语句)变量= InputBox("提示信息") (3)功能:从键盘上接受一个数据,然后赋值给某个变量(即读入一个任意值,保存到某变量中。

(4)用InputBox函数输入的数据默认为字符型,但由于赋值语句的特点“右边服从左边”,通常会自动转换成相应类型值之后再赋值给变量。

例如:Private Sub Command1_Click()'a,b不定义就使用,被认为是变体型a = InputBox("请输入一个整数:")b = InputBox(请输入一个整数:") If a > b Then Print b, aIf b >= a Then Print a, bEnd Sub输入的是“9”和“12”则会被当成字符串"9"和字符串"12",赋值给a和b,而字符串按其ASCII 码值比较大小(字典序)。

因此,“变量最好先定义再使用”二、双分支if语句1、格式[1] If 表达式Then语句块1Else语句块2End if[2]If 表达式Then 语句块1 Else 语句块22、功能3、说明格式[1]中Else独立占一行!4、举例改写上例:Option ExplicitPrivate Sub Command1_Click() Dim a%, b%a = InputBox("请输入一个整数:")b = InputBox("请输入一个整数:") If a > b ThenPrint b, aElsePrint a, bEnd IfEnd Sub[法二]让a中存放较小数,b中存放较大数。

Option ExplicitPrivate Sub Command1_Click()Dim a%, b%, t As Integera = InputBox("请输入一个整数:")b = InputBox("请输入一个整数:") If a > b Then '交换二者的值t = aa = bb = tEnd IfPrint a, bEnd Sub*重要基本算法:两数交换借助第三数。

类似于两水杯交换其中的内容,借助第三个空杯子,最终空杯子依然是空的。

但是,中间变量t却保存了a或b的值。

只是没用。

例2:任意读入3个整数,从小到大输出这3个数。

[算法提示:让a中放最小数,c中放最大数]Option ExplicitPrivate Sub Command1_Click()Dim a%,b%,c%,t%A=inputbox(“:”)b=inputbox(“:”) c=inputbox(“:”) if a>b thent=a:a=b:b=t end ifif a>c thent=a:a=c:c=t end ifif b>c thent=b:b=c:c=t end ifprint a;b;cEnd Sub三、多分支if语句1.格式If 表达式1 then语句块1Elseif 表达式2 then 语句块2Elseif 表达式3 then 语句块3……Else语句块nEnd if2.功能3.说明(1)各“表达式”通常为关系(>、=等)表达式、逻辑表达式(Not、And、Or)(2)Else子句可以省略(但一般不省),省略之后可能一个分支都不被执行。

(3)各分支中最多只会有一个分支被执行到。

4.应用举例例2、商场打折:满500元打5折;满300不足500打6折;满200不足300打7折;满100不足200打8折;其余不打折。

请为收银员编程,输出顾客应付款。

Option ExplicitPrivate Sub Command1_Click() Dim cost As Single, x As Single 'x表示商品原价x = InputBox("读入原价")If x >= 500 Thencost = x * 0.5 ElseIf x >= 300 Then cost = x * 0.6 ElseIf x >= 200 Then cost = x * 0.7 ElseIf x >= 100 Thencost = x * 0.8Elsecost = xEnd IfPrint "应付款:"; 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语句块1Case 表达式2 语句块2 Case 表达式3 语句块3 ……Case Else语句块nEnd Select2.功能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 IntegerDim cost As Singleyj = InputBox("输入原价:") xh = InputBox("输入序号:") Select Case xhCase 888: cost = yj * 0.1 Case 18, 28: cost = yj * 0.5Case 100 To 200: cost = yj * 0.55 Case Is >= 1000, Is <= 10cost = yj * 0.6Case Else: cost = yj * 0.8End SelectPrint "您是第"; xh; "号顾客,应付款打折后:"; costEnd Sub例2:由两数乘积是否为0,判断两数为0的情况。

Private Sub Command1_Click()Dim x%, y%x = InputBox("x:")y = InputBox("y:")Select Case x * yCase 0'与Case Is=0等价Print "x和y至少有一个为0"Case Is <> 0Print "x和y都不为0"End SelectEnd Sub(3)Case Else分支可以省略,但省略后可能一个分支都不被执行。

(4)“格式一”一般在各“语句块”为单个语句时用(5)当Select Case 后的表达式的值落在某表达式范围内时,就执行其所对应分支改写前例1、“读入成绩代号(A~E),输出对应分数范围。

”Option ExplicitPrivate Sub Command1_Click()Dim fs As Stringfs = InputBox("读入成绩A~E!")Select Case fsCase "A": Print ">=90!" Case "B": Print "80-89" Case "C": Print "70-79" Case "D": Print "60-69" Case "E": Print "<60"Case Else: Print "输入有错!!!" End SelectEnd Sub改写前例3“铅笔批发”Option ExplicitPrivate Sub Command1_Click()Dim n As Integer'n表示铅笔支数Dim cost As Singlen = InputBox("输入铅笔支数") Select Case n \ 100Case Is >= 5: cost = n * 0.5。

相关主题