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