vb选择结构程序设计.ppt
《vb选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《vb选择结构程序设计.ppt(69页珍藏版)》请在课桌文档上搜索。
1、第4章 选择结构程序设计,第4章 选择结构程序设计(分支结构),选择结构是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特点是根据所给定的条件为真(即条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作,并且任何情况下总有:“无论分支多寡,必择其一;纵然分支众多,仅选其一”。,4.1 选择结构程序设计的概念 在VB中,实现选择结构的语句有:If.Then.Else、If.Then.ElseIf、Select Case语句。这些语句又称为条件语句,条件语句的功能都是根据表达式的值有选择地执行一组语句。4.2 条件表达式 在条件语句中作为判断依据的表达式称为“条件表达式
2、”,条件表达式的取值为布尔值:真(True)或假(False)。在VB中,True的值等于1,False的值等于0。根据“条件”的简单或者复杂程度,条件表达式可以分为两类:关系表达式以及布尔表达式。,4.2.1 关系运算符与关系表达式 关系表达式是指用关系运算符将两个表达式连接起来的式子(例如a+b 0),关系运算符又称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个布尔值(True或False),这个结果就是关系表达式的值。,1.关系运算符 VB提供的关系运算符有以下6种,见表4-1。表4-1 关系运算符,2.关系表达式 关系表达式的格式为表达式1关系运算符表达式2关系运算符表达式
3、3 关系表达式的运算次序为:先分别求出关系运算符两侧表达式的值,然后再把二者进行比较,二者的关系若与关系运算符指示的一样,则关系运算的结果为真True,否则为假False。,4.2.2 布尔运算符与布尔表达式 对于较为复杂的条件,必须使用布尔表达式。布尔表达式是指用布尔运算符连接若干关系表达式或布尔值而成的式子。布尔表达式的值也是一个布尔值。VB提供的布尔运算符有:And、Or、Not、Xor、Eqv、Imp等6种,其中常用的为前3种,见表4-2。,表4-2 布尔运算符 说明:1)布尔运算符两侧若有数值数据出现,则将数值数据转换为二进制数(补码形式)进行按位运算。此时,1为真,0为假。2)布尔
4、运算真值表见表4-3。,表4-3 布尔运算真值表aba And ba Or bNot aTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueTrueFalseFalseFalseFalseTrue Not由真变假,由假变真。And对两个布尔值进行比较,如果两个值均为真,则结果为真,否则为假。Or对两个布尔值进行比较,如果其中一个值为真,则结果为真,只有两个值都为假时,结果才为假。运算布尔表达式时,先运算关系表达式,再运算布尔表达式。,逻辑运算的运算规则,按二进制进行的逻辑运算规则,Print 12 and 8=8 1100
5、 and 1000=1000Print 12 or 16=28 1100 and 10000=11100Print 12 Xor 7=11 1100 Xor 111=1011Print 11 Xor 7=12 1011 xor 111=1100注:先把数字转换为二进制数,再进行运算。(A Xor B)Xor B=A,4.2.3 运算符的优先顺序 在一个表达式中进行多种操作时,VB会按一定的顺序进行求值,称这个顺序为运算符的优先顺序。运算符的优先顺序见表4-4。表4-4 运算符的优先顺序,【例4-1】设变量x=4,y=1,a=7.5,b=6.2,求表达式x+y a+b And Not y 1.3
6、 And Not y b 2)再作关系运算:True And Not False 3)作非运算:True And True 4)最后得:True,【例4-2】判断某个年份是闰年的根据是年份数满足下述条件之一。条件1:能被4整除,但不能被100整除的年份都是闰年。条件2:能被100整除,又能被400整除的年份都是闰年。设变量y表示年份,写出判断y是否闰年的布尔表达式。解:判断y是否满足条件1的布尔表达式是y Mod 4=0 And y Mod 100 0 判断y是否满足条件2的布尔表达式是y Mod 100=0 And y Mod 400=0 两者取“或”,即得判断闰年的布尔表达式:y Mod
7、4=0 And y Mod 100 0 Or y Mod 100=0 And y Mod 400=0,4.3 单条件选择语句IF 单条件选择结构是最常用的双分支选择结构,其特点是:所给定条件(条件表达式)的值如果为真,则执行a1块;如果为假则执行a2块。其一般形式如图4-1所示。图4-1 单条件选择结构的流程图 实现单条件选择结构的语句是If语句,在VB中有行If语句和块If语句两种。,4.3.1 单行结构条件语句IFTHENELSE 单行If语句的语法格式为If 条件 Then 语句序列1 Else 语句序列2 说明:1)条件可以是关系表达式、布尔表达式或数值表达式。如果以数值表达式作条件,
8、则非0值为真,0为假。2)如果没有Else子句,语句序列1为必要参数,在条件为True时执行。,【例4-3】输入x,计算y的值。其中:,流程图4-2所示。图4-2 计算y值的流程图 根据流程图,写出命令按钮Command1的单击(Click)事件代码为:,图4-3 计算函数的值Private Sub Command1_Click()Dim x As Single,y As Single x=Val(Text1.Text)If x=0 Then y=1+x Else y=12*x Text2.Text=yEnd Sub,【例4-4】学校对学习成绩优良的学生进行奖励,获奖的条件如下:1)所考5门课
9、的总分超过450分;2)每门课的成绩都在88分以上;3)前3门(主课)的成绩都在95分以上,其他两门(非主课)的成绩都在80分以上。输入某学生5门课的成绩s1、s2、s3、s4、s5,判断他是否能够获奖。分析:依题意列出3个条件表达式:1)s1+s2+s3+s4+s5=450 2)s1=88 AND s2=88 AND s3=88 AND s4=88 AND s5=88 3)s1=95 AND s2=95 AND s3=95 AND s4=80 AND s5=80,图4-4 判断能否获奖 命令按钮Command1的单击(Click)事件代码为:Private Sub Command1_Clic
10、k()Dim s1 As Single,s2 As Single,s3 As Single,s4 As Single,s5 As Single Dim p As String s1=Val(InputBox(请输入第1门课的成绩:,输入框,0)s2=Val(InputBox(请输入第2门课的成绩:,输入框,0)s3=Val(InputBox(请输入第3门课的成绩:,输入框,0)s4=Val(InputBox(请输入第4门课的成绩:,输入框,0)s5=Val(InputBox(请输入第5门课的成绩:,输入框,0),t1=(s1+s2+s3+s4+s5=450)t2=(s1=88 And s2=8
11、8 And s3=88 And s4=88 And s5=88)t3=(s1=95 And s2=95 And s3=95 And s4=80 And s5=80)If t1 Or t2 Or t3 Then p=可以获奖!Else p=不能获奖!p=Str(s1)&,&Str(s2)&,&Str(s3)&,&Str(s4)&,&Str(s5)&Chr(13)&p Label1.Caption=该生五门课的成绩分别是:&Chr(13)&pEnd Sub,【例4-5】利用输入框函数输入3个不同的数,选出其中最大的数。命令按钮Command1的单击(Click)事件代码为:Private Sub
12、Command1_Click()Dim a As Single,b As Single,c As Single a=Val(InputBox(请输入第1个数:,输入框,0)b=Val(InputBox(请输入第2个数:,输入框,0)c=Val(InputBox(请输入第3个数:,输入框,0)p=&a&,&b&,&c p=p&三个数中最大的数是:If a b And a c Then p=p&a If b a And b c Then p=p&b If c a And c b Then p=p&c Label1.Caption=pEnd Sub,图4-5 求3个数中最大数4.3.2 使用IIF函
13、数 还可以使用IIf函数来实现一些比较简单的选择结构。IIf函数的语法结构为:IIf(条件表达式,真部分,假部分)语句y=IIf(条件表达式,真部分,假部分)相当于:If 条件表达式 then y=真部分 Else y=假部分,【例4-6】例4-3中命令按钮Command1的单击(Click)事件代码可以改为:Private Sub Command1_Click()Dim x As Single,y As Single x=Val(Text1.Text)y=IIf(x=0,1+x,12*x)Text2.Text=yEnd Sub,4.3.3 块结构条件语句IFTHENELSEEND IF VB
14、提供的块If语句,将一个选择结构用多个语句行来实现。其语法结构为:If 条件1 Then 语句序列1Else 语句序列2End If 在块形式中,If语句必须是第1行语句。If块必须以一个End If语句结束。,【例4-7】将例4-3中命令按钮Command1的单击(Click)事件代码改为多行If语句:Private Sub Command1_Click()Dim x As Single,y As Single x=Val(Text1.Text)If x=0 Then y=1+x Else y=12*x End If Text2.Text=yEnd Sub,4.3.4 IF语句的嵌套1.IF
15、语句的嵌套 如果在If语句中操作块a1块(语句序列1)或a2块(语句序列2)本身又是一个If语句,则称为If语句的嵌套。,If 语句的嵌套 If then If then if then if then Else if then Else Else ifthen End if Else Else ifthen End if Else End if End if End if,【例4-8】铁路托运行李,从甲地到乙地,规定每张客票托运费计算方法是行李重量不超过50kg时,0.25元/kg,超过50kg而不超过100kg时,其超过部分按0.35元/kg收费,超过100kg时,其超过部分按0.45元/
16、kg收费。编写程序,输入行李重量,计算并输出托运的费用。分析:设行李重量为wkg,应付运费为x元,则运费公式为:,命令按钮Command1的单击(Click)事件代码为:Private Sub Command1_Click()Dim w As Single,x As Single w=Val(Text1.Text)If w=50 Then x=0.25*w Else If w=100 Then x=0.25*50+0.35*(w50)Else x=0.25*50+0.35*50+0.45*(w100)图4-7 计算托运费 End If End If Text2.Text=xEnd Sub,图4
17、-8 计算优惠价【例4-9】某百货公司为了促销,采用购物打折扣的优惠办法:每位顾客一次购物 1)在1000元以上者,按九五折优惠;2)在2000元以上者,按九折优惠;3)在3000元以上者,按八五折优惠;4)在5000元以上者,按八折优惠。输入购物款数,计算并输出优惠价,如图4-8所示。分析:设购物款数为x元,优惠价为y元,付款公式为:,命令按钮Command1的单击(Click)事件代码为:Private Sub Command1_Click()Dim x As Single,y As Single x=Val(Text1.Text)If x 1000 Then y=x Else If x
18、2000 Then y=0.95*x Else If x 3000 Then y=0.9*x Else,If x 5000 Then y=0.85*x Else y=0.08*x End If End If End If End If Text2.Text=yEnd Sub图4-8 计算优惠价,2.IF语句的嵌套格式ELSEIF 例4.8中出现的多层If语句嵌套,使程序冗长,不便阅读。为此VB提供了带ElseIf的块If语句来处理当条件为假时又内嵌块If语句的情形,以使程序简化易写。其语法结构为:If 条件1 Then 语句序列1ElseIf 条件2 Then 语句序列2.Else 其他语句序
19、列End If,【例4-10】在例4-9中使用带ElseIf的块If语句来计算出优惠价,只需将其中命令按钮Command1的单击(Click)事件代码改为:Private Sub Command1_Click()Dim x As Single,y As Single x=Val(Text1.Text)If x 1000 Then y=x ElseIf x 2000 Then y=0.95*x ElseIf x 3000 Then y=0.9*x,ElseIf x 5000 Then y=0.85*x Else y=0.08*x End If Text2.Text=yEnd Sub,4.4 多分
20、支条件选择语句SELECT CASE 多分支选择结构的特点是:从多个选择结构中,选择第1个条件为真的路线作为执行的路线。即所给定的选择条件1为真时,执行a1块;如果为假则继续检查下一个条件。如果条件都不为真,就执行其他操作块,如果没有其他操作块,则不作任何操作就结束选择。如图4-9所示。图4-9 多条件多分支选择结构的流程图,4.4.1 SELECT CASE结构与语法 虽然使用嵌套的办法可以利用If语句实现多分支选择,但是最好还是使用VB提供的多分支选择结构(Select Case语句)来实现多分支选择。根据单一表达式来执行多种可能的动作时,Select Case更为简捷,它根据表达式的值,
21、来决定执行几组语句中的一组。,4.4.1 SELECT CASE结构与语法 Select Case语句的语法格式为Select Case 测试条件 Case 表达式表1 语句序列1 Case 表达式表2 语句序列2.Case Else 其他语句序列End Select,其中:为数值型或字符串表达式;每个是一个或几个值的列表,可以是表达式、枚举值表达式1 To 表达式2,Is关系运算表达式等几种形式。如果在一个列表中有多个值,就用逗号把值隔开;每个语句组中含有零个到多个语句。Select Case语句执行过程:1、计算的值 2、将的值与Case语句中的中的每一个值逐一比较。如果与其中一个相匹配,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 选择 结构 程序设计
链接地址:https://www.desk33.com/p-242297.html