《vb选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《vb选择结构程序设计.ppt(69页珍藏版)》请在优知文库上搜索。
1、第第4 4章章 选择结构程序设计选择结构程序设计第第4 4章章 选择结构程序设计选择结构程序设计( (分支结构分支结构) ) 选择结构是计算机科学用来描述自然界和社会生活中分选择结构是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特点是根据所给定的条件为真(即支现象的重要手段。其特点是根据所给定的条件为真(即条件成立)与否,而决定从各实际可能的不同分支中执行条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作,并且任何情况下总有:某一分支的相应操作,并且任何情况下总有:“无论分支无论分支多寡,必择其一;纵然分支众多,仅选其一多寡,必择其一;纵然分支众多,仅选其一”。
2、v4.1 选择结构程序设计的概念选择结构程序设计的概念 在在VB中,实现选择结构的语句有:中,实现选择结构的语句有:If.Then.Else、If.Then.ElseIf、Select Case语句。这些语句又称为条语句。这些语句又称为条件语句,条件语句的功能都是根据表达式的值有选择地执件语句,条件语句的功能都是根据表达式的值有选择地执行一组语句。行一组语句。v4.2 条件表达式条件表达式 在条件语句中作为判断依据的表达式称为在条件语句中作为判断依据的表达式称为“条件表达条件表达式式”,条件表达式的取值为布尔值:真(,条件表达式的取值为布尔值:真(True)或假)或假(False)。在)。在V
3、B中,中,True的值等于的值等于1,False的值等于的值等于0。根据。根据“条件条件”的简单或者复杂程度,条件表达式可以的简单或者复杂程度,条件表达式可以分为两类:关系表达式以及布尔表达式。分为两类:关系表达式以及布尔表达式。4.2.1 4.2.1 关系运算符与关系表达式关系运算符与关系表达式 关系表达式是指用关系运算符将两个表达式连接起来的关系表达式是指用关系运算符将两个表达式连接起来的式子(例如式子(例如a + b 0),关系运算符又称比较运算符,用),关系运算符又称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个布尔值来对两个表达式的值进行比较,比较的结果是一个布尔值(Tr
4、ue或或False),这个结果就是关系表达式的值。),这个结果就是关系表达式的值。1. 关系运算符关系运算符 VB提供的关系运算符有以下提供的关系运算符有以下6种,见表种,见表4-1。表表4-1 关系运算符关系运算符运算符名 称例 子说 明小于3 4值为:True,强制转换为数值型=小于或等于3 大于0 (1 0)值为:True,强制转换为数值型=大于或等于aa = ab值为:False=等于1 = True值为:False,强制转换为数值型不等于4 5值为:True2. 关系表达式关系表达式 关系表达式的格式为关系表达式的格式为表达式表达式1关系运算符关系运算符表达式表达式2关系运算符关系运
5、算符表达表达式式3 关系表达式的运算次序为:先分别求出关系运算符两侧关系表达式的运算次序为:先分别求出关系运算符两侧表达式的值,然后再把二者进行比较,二者的关系若与关表达式的值,然后再把二者进行比较,二者的关系若与关系运算符指示的一样,则关系运算的结果为真系运算符指示的一样,则关系运算的结果为真True,否则,否则为假为假False。4.2.2 4.2.2 布尔运算符与布尔表达式布尔运算符与布尔表达式 对于较为复杂的条件,必须使用布尔表达式。布尔表达对于较为复杂的条件,必须使用布尔表达式。布尔表达式是指用布尔运算符连接若干关系表达式或布尔值而成的式是指用布尔运算符连接若干关系表达式或布尔值而成
6、的式子。布尔表达式的值也是一个布尔值。式子。布尔表达式的值也是一个布尔值。VB提供的布尔运提供的布尔运算符有:算符有:And、Or、Not、Xor、Eqv、Imp等等6种,其中种,其中常用的为前常用的为前3种,见表种,见表4-2。表表4-2 布尔运算符布尔运算符 说明:说明: 1) 布尔运算符两侧若有数值数据出现,则将数值数据转布尔运算符两侧若有数值数据出现,则将数值数据转换为二进制数(补码形式)进行按位运算。此时,换为二进制数(补码形式)进行按位运算。此时,1为真,为真,0为假。为假。 2) 布尔运算真值表见表布尔运算真值表见表4-3。运算符名 称例 子说 明And与(4 5) And (3
7、 5) Or (3 0)值为:False,由真变假或由假变真,进行取“反”操作表表4-3 布尔运算真值表布尔运算真值表aba And ba Or bNot aTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueTrueFalseFalseFalseFalseTrue Not由真变假,由假变真。由真变假,由假变真。And对两个布尔值进行比较,对两个布尔值进行比较,如果两个值均为真,则结果为真,否则为假。如果两个值均为真,则结果为真,否则为假。Or对两个布对两个布尔值进行比较,如果其中一个值为真,则结果为真,只有尔值进行比较,
8、如果其中一个值为真,则结果为真,只有两个值都为假时,结果才为假。运算布尔表达式时,先运两个值都为假时,结果才为假。运算布尔表达式时,先运算关系表达式,再运算布尔表达式。算关系表达式,再运算布尔表达式。ABNot AA And BA or BA Xor BTTFTTFTFFFTTFTTFTTFFTFFF按二进制进行的逻辑运算规则ABNot AA And BA or BA Xor B110110100011011011001000vPrint 12 and 8 =8 1100 and 1000=1000vPrint 12 or 16 =28 v1100 and 10000=11100vPrint
9、12 Xor 7 =11 1100 Xor 111=1011vPrint 11 Xor 7 =12 1011 xor 111=1100v注:先把数字转换为二进制数,再进行运算。v(A Xor B) Xor B=A4.2.3 4.2.3 运算符的优先顺序运算符的优先顺序 在一个表达式中进行多种操作时,在一个表达式中进行多种操作时,VB会按一定的顺序进会按一定的顺序进行求值,称这个顺序为运算符的优先顺序。运算符的优先行求值,称这个顺序为运算符的优先顺序。运算符的优先顺序见表顺序见表4-4。表表4-4 运算符的优先顺序运算符的优先顺序优先顺序运算符类型运算符1算术运算符(指数运算)2(负数)3*、/
10、(乘法和除法)4(整数除法)5Mod(求模运算)6+、(加法和减法)7字符串运算符&(字符串连接)8关系运算符=、=9布尔运算符Not10And11Or【例例4-1】设变量设变量x = 4,y = 1,a = 7.5,b = 6.2,求,求表达式表达式x + y a + b And Not y 1.3 And Not y b 2) 再作关系运算:再作关系运算: True And Not False 3) 作非运算:作非运算: True And True 4) 最后得:最后得: True【例例4-2】判断某个年份是闰年的根据是年份数满足下述条判断某个年份是闰年的根据是年份数满足下述条件之一。件之
11、一。 条件条件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 两者取两者取“或或”,即得判断闰年的布尔
12、表达式:,即得判断闰年的布尔表达式:y Mod 4 = 0 And y Mod 100 0 Or y Mod 100 = 0 And y Mod 400 = 0v4.3 单条件选择语句单条件选择语句IF 单条件选择结构是最常用的双分支选择结构,其特点是:单条件选择结构是最常用的双分支选择结构,其特点是:所给定条件(条件表达式)的值如果为真,则执行所给定条件(条件表达式)的值如果为真,则执行a1块;块;如果为假则执行如果为假则执行a2块。其一般形式如图块。其一般形式如图4-1所示。所示。图图4-1 单条件选择结构的流程图单条件选择结构的流程图 实现单条件选择结构的语句是实现单条件选择结构的语句是
13、If语句,在语句,在VB中有行中有行If语语句和块句和块If语句两种。语句两种。如果 条件该(选择)条件成立吗?真a1块条件成立时所执行的操作块,它一般为非空块假a2块条件不成立时所执行的操作块,它可为空块4.3.1 4.3.1 单行结构条件语句单行结构条件语句IFIFTHENTHENELSEELSE 单行单行If语句的语法格式为语句的语法格式为If 条件条件 Then 语句序列语句序列1 Else 语句序列语句序列2 说明:说明: 1) 条件条件可以是关系表达式、布尔表达式或可以是关系表达式、布尔表达式或数值表达数值表达式式。如果以数值表达式作条件,则非。如果以数值表达式作条件,则非0值为真
14、,值为真,0为假。为假。 2) 如果没有如果没有Else子句,子句,语句序列语句序列1为必要参数,在为必要参数,在条件条件为为True时执行。时执行。【例例4-3】输入输入x,计算,计算y的值。其中:的值。其中:)0(21)0(1xxxxy 流程图流程图4-2所示。所示。图图4-2 计算计算y值的流程图值的流程图 根据流程图,写出命令按钮根据流程图,写出命令按钮Command1的单击(的单击(Click)事件代码为:事件代码为:输入x给出x的值如果x = 0真y 1 + xx=0时的y值假y 1 2 * xx= 0 Then y = 1 + x Else y = 12 * x Text2.Te
15、xt = yEnd Sub【例例4-4】学校对学习成绩优良的学生进行奖励,获奖的条学校对学习成绩优良的学生进行奖励,获奖的条件如下:件如下: 1) 所考所考5门课的总分超过门课的总分超过450分;分; 2) 每门课的成绩都在每门课的成绩都在88分以上;分以上; 3) 前前3门(主课)的成绩都在门(主课)的成绩都在95分以上,其他两门(非分以上,其他两门(非主课)的成绩都在主课)的成绩都在80分以上。分以上。 输入某学生输入某学生5门课的成绩门课的成绩s1、s2、s3、s4、s5,判断他,判断他是否能够获奖。是否能够获奖。 分析:依题意列出分析:依题意列出3个条件表达式:个条件表达式: 1) s
16、1 + 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_Click() 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(