vb选择结构select.docx

上传人:b****4 文档编号:5191686 上传时间:2022-12-13 格式:DOCX 页数:12 大小:19.03KB
下载 相关 举报
vb选择结构select.docx_第1页
第1页 / 共12页
vb选择结构select.docx_第2页
第2页 / 共12页
vb选择结构select.docx_第3页
第3页 / 共12页
vb选择结构select.docx_第4页
第4页 / 共12页
vb选择结构select.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

vb选择结构select.docx

《vb选择结构select.docx》由会员分享,可在线阅读,更多相关《vb选择结构select.docx(12页珍藏版)》请在冰豆网上搜索。

vb选择结构select.docx

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)Name(名称)属性默认为Text1、

Text2……

没有Caption!

2、用于输入:

与赋值语句合用。

[格式]

变量名=文本框的Name属性值.Text

[说明]

(1)“.Text”可以省

(2)文本框中输入的数据依然默认为字符型。

(3)与InputBox函数类似,通常一次读入一个值给一个变量。

(4)执行程序后,先往文本框中输入数据,然后再触发事件(单击命令按钮等)。

3、用于输出

与赋值语句合用。

[格式]

文本框的Name属性值.Text=表达式

[说明]

(1)MultiLine属性为True,则可多行显示(却一般默认为False)。

(2)vbCrLf是系统常量,功能是“回车且换行”,可以用“Chr(10)&Chr(13)”

(3)Chr是一个系统函数,参数是0-127(0-255)整数,对应ASCII码表里所有字符的ASCII码值。

功能是将该ASCII码值对应的字符求出来。

Chr(65)与”A”等价

(4)&是字符串连接符:

“Hello,”&“XiaoLi”

“Hello,XiaoLi”

&左右侧必须各空一格。

(5)+也可以做字符串连接符:

字符串1+字符串2

以上使用格式是“+”做连接符的最好写法。

否则,要记很多规则。

(6)&总是将不是字符串的对象变成字符串后连接。

(7)+的某一个运算对象若为数值型(或可以转换成数值型True等),而另一个对象即使是数字字符串,会被转换成数值,进行加法运算。

但若是不能转成合法数值的字符串,则报错!

*标签控件(Lable)

一般与文本框等控件合用,专门用来标识说明。

(1)Name属性默认为Lable1、Lable2……

(2)Caption属性用来标识说明。

五、用选择语句的嵌套完成多分支结构的描述

……

x=Text1

Ifx>=500Then

cost=x*0.5

Else

Ifx>=300Then

cost=x*0.6

Else

Ifx>=200Then

cost=x*0.7

Else

Ifx>=100Then

cost=x*0.8

Else

cost=x

EndIf

EndIf

EndIf

EndIf

[注意]嵌套时,外层一定要完整地包住内层。

判断闰年

PrivateSubCommand1_Click()

DimyAsInteger

DimflagAsBoolean

y=InputBox("输入年份:

")

IfyMod4=0Then

IfyMod100=0Then

IfyMod400=0Then

flag=True

Else

flag=False

EndIf

Else

flag=True

EndIf

Else

flag=False

EndIf

Ifflag=TrueThen

Printy;"是闰年"

Else

Printy;"不是闰年"

EndIf

EndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1