第4章 选择结构程序设计ppt课件_第1页
第4章 选择结构程序设计ppt课件_第2页
第4章 选择结构程序设计ppt课件_第3页
第4章 选择结构程序设计ppt课件_第4页
第4章 选择结构程序设计ppt课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 选择结构程序设计在日常生活和工作中,经常要根据不同的情况,选择不同的处理方法。同样,在程序设计过程中,也常常要根据不同的条件,采用不同的操作。例如:要判断一元二次方程ax2+bx+c=0有无实根,应根据一元二次方程满足实根的条件,如果a0 且a2-4ac0,则方程有实根,否则没有实根。选择结构的特点是:根据给定的条件,如果条件为真,则执行某条语句,否则执行另外的语句或不做任何操作。Visual Basic 提供了多种不同形式的条件语句和相应的选择性控件。本章主要内容: 1. 条件表达式:关系表达式和逻辑表达式 2. 条件语句:If Then 语句;If Then Else 语 句;Ii

2、f 函数 3. 多分支语句 If Then Else 语句和Select Case 语句 4. 选择结构的嵌套 5. 选择性控件:单选按钮和复选框 6.计时器控件 在选择结构程序设计语句中,作为选择判断依据的表达式称为“条件表达式”。条件表达式的结果只能是“TRUE” 或“FALSE”。它可以分为两类:关系表达式和逻辑表达式。4.1 条件表达式4.1.1 关系运算符与关系表达式(1) 关系运算符 关系运算符也称为比较运算符,用来比较两个操作数的大小。其运算结果是一个逻辑值,即真True或假False)。Visual Basic提供的关系运算符见表4-1阐明:1、关系运算的两个操作数一般是相同或

3、相容类型的,常对两个数值、两个字符串、两个日期型数据进行比较。、如果两个操作数是数值型,则按其大小比较。例如: 8=9 结果为False 87 结果为False8=8 结果为True13、如果两个操作数是字符型,则按字符的ASCII码值从左到右逐一比较、即首先比较两个字符串的第1个字符,其ASCII码值大的字符串大,如第1个字符相同,则比较第2个字符,以此类推,最先出现不一样的字符的关系决定字符串的关系,如所有字符相同,则两个字符串相等。例如:“ABCD”ABDC” 结果为False abcd abc 结果为True汉字字符的ASCII码值大于西文字符。 例如: ” “”0” 结果为False

4、”a”我们” 结果为False 4、如果两个操作数是日期型,则将日期型数据视为形如“yyyymmdd的8位整数,按数值大小比较。例如: #2019-12-2#2019-12-1# 结果为True(2) 关系表达式:由操作数和关系运算符组成的表达式称为关系表达式。关系表达式的运算结果是一个逻辑值,即真True或假False)。格式为:在关系表达式中,如果出现函数和算术运算表达式,先计算函数和算术运算表达式,然后再计算关系运算。例如:16 Mod 65 先计算16 Mod 6,结果是4,再计算 45, 结果为False Mid(“Visual Basic 程序设计”,8,5)”basic” 先计算

5、Mid(“Visual Basic 程序设计”,8,5),结果为Basic”,再计算Basic” ”basic结果为True 5=5=5 先计算5=5,结果为True,再计算True=5,结果是False 4.1.2 逻辑运算符与逻辑表达式(1)逻辑运算符逻辑运算符一般用于对两个逻辑型数据进行运算,其结果仍为逻辑型数据True或False)。逻辑运算符除Not是单目运算符外,其余都是双目运算符。Visual Basic提供的逻辑运算符见表4-25。(按运算优先级从高到低排列) 表43列出了6种逻辑运算的全部可能值,称为“真值表”。表 43 逻辑运算真值表ABNot A非And与Or或Xor异或

6、Eqv相等Imp蕴含TTFTTFTTTFFFTTFFFTTFTTFTFFTFFFTT 逻辑表达式用逻辑运算符连接起来的表达式称为逻辑表达式,逻辑表达式也称为布尔表达式。 例如: 一元二次方程有实根的条件:a0 且a2-4ac0 写成逻辑表达式为: a0 and a2-4*a*c=0 数学上判断x是否在区间a, b时,习惯上写成axb ,但在VB中不能写成:a = x = b应写成VB逻辑表达式:a = x And x 2 Or Not 8 0 And ( 9 - 8) / 2 0的值首先进行函数运算:sqr(4) 值,结果为2其次算术运算:(9-8)/2=0.5第三进行关系运算:22 结果为F

7、alse80 结果为True0.50结果为False最后进行逻辑运算:False or not True and False按照逻辑运算符的优先级,先计算Not 运算,再计算and运算,最后计算or运算,结果为 False 4.2 条件语句条件语句是形成选择结构最基本的语句之一,其形式有三种:IfThen 语句IfThenElse 语句 IIF函数4.2.1 IfThen 语句、格式:IfThen 语句属于单分支结构语句,书写格式有两种:单行结构和块结构。 “单行结构格式: If 条件表达式 Then 语句组 “块结构” 格式: If 条件表达式 Then 语句组 End If其中:条件表达式

8、:一般为关系表达式和逻辑表达式。也可为算术表达式,表达式值为非0时,按True进行判断,表达式值为0时,按False进行判断语句组:在行结构中,一般为一条语句,如果是多条语句,必须用“:”分开,且在一行上书写。留意:在“块结构” 格式中,If和End If必须成对出现。、语句功能:当条件表达式的值为True时,执行Then后面的语句,否则执行该语句的下一条语句。其流程图为4.1: 语 句 组 A B 条 件 不 成 立 成 立 例如:If x0 Then x=x+1或:If x0 Then X=x+1End If 表示如果x0,则将x的值增加1,否则执行该语句的下一条语句。例如:已知两个数x和

9、y,比较它们的大小,使得x大于y。语句为: If xy Then t=x:x=y:y=t (留意: 多条语句必须用“:”分开,且必须书写在一行上) 或:If x Y Then Max = X Else Max = Y或: If X Y Then Max = X Else Max = Y 4.2.3 IIF函数 IIF函数是一种条件函数,可以代替IF语句。格式: IIf (条件,True-部分,False-部分)功能: 根据条件判断,选择True-部分或False-部分的值:当条件为True时,计算并返回True-部分的值;当条件为False时,计算并返回False-部分的值。阐明: 条件一般为

10、关系表达式和逻辑表达式。也可为算术表达式,表达式值为非0时,按True进行判断,表达式值为0时,按False进行判断 IIf 函数的引用将产生一个返回值,其值与True-部分和False-部分的类型一致。 True-部分和False-部分为表达式、变量或函数。例如,求x,y中大的数,赋值给Max变量,语句如下: Max=Iif(xy,x,y) 判断一个整数是奇数还是偶数,语句如下: Print Iif(x mod 2=0,” 偶数”,”奇数”)4.3 多分支语句双分支结构只能根据条件的True和False决定处理两个分支中的其中一个。当实际处理的问题有多种条件(超过两种)时,就要用到多分支语句

11、。多分支语句有两种:IfThenElseIf 语句 和 Select Case语句4.3.1 IfThenElseIf 语句(1格式 IF 条件1 Then 语句块1 ElseIf 条件2 Then 语句块2 ElseIf 条件n Then 语句块n Else 语句块n+1 End If(2阐明 语句块1到语句块n+1中只有一个被执行,无论哪个被执行后,流程都会到End If后下一条语句去。 ElseIF不能写成Else If。 当多分支中有多个条件同时满足,则只执行第一个与之匹配的语句块。因此,要注意对多分支的条件的书写次序,防止某些值被过滤。 If 和 End If 必须成对出现。(3功能

12、依次测试条件1到条件n,当条件i成立时i为1到n之间的整数),执行语句块i,然后执行End If后面的下一条语句;如果所有的条件都不成立,并且 Else 语句块n+1 存在,则执行语句块n+1其流程见图:【例4.4】输入某位学生的百分制成绩,要求输出成绩的等级:假设90分以上为A等,80-89分为B等,70-79分为C等,60-69为D等,60分以下为E等。Private Sub Form_Click()Dim Score As IntegerScore = InputBox(请输入学生的百分制分数)If Score = 90 Then MsgBox 学生的成绩为A等 ElseIf Score

13、 = 80 Then MsgBox 学生的成绩为B等 ElseIf Score = 70 Then MsgBox 学生的成绩为C等 ElseIf Score = 60 Then MsgBox 学生的成绩为D等 Else MsgBox 学生的成绩为E等End IfEnd Sub4.3.2 Select Case语句Select Case语句又称为情况语句)。Select Case语句是根据一个表达式的值,判断它的所属范围,选择执行不同的语句块,是多分支选择的另一种语句实现方法。可以取代IfThenElseIf 语句。(1格式 Select Case 测试表达式 Case 表达式列表1 语句块1

14、Case 表达式列表2 语句块2 Case 表达式列表n 语句块n Case Else 语句块n+1 End Select (2功能 根据测试表达式的值,依次与表达式列表1到表达式列表n所描述的“域值范围进行比较,如果与表达式列表i的“域值范围相匹配,则选择执行语句块ii为1到n之间的整数),然后到End Case后下一条语句去。 如果与所有表达式列表的“域值范围都不匹配,并且 Else 语句块n+1 存在,则执行语句块n+1,然后到End Case后下一条语句去。其流程见图:(3阐明 表达式列表i是由逗号分隔开的下列3种成分组成: 表达式; 表达式1 To 表达式2; Is关系表达式 表达式

15、列表1到表达式列表n的值与测试表达式的值的类型必须相同。 如果测试表达式的值与多个表达式列表i中的“域值范围相匹配,则选择执行相匹配的 第一个Case表达式列表i后面的语句块 语句块1到语句块n+1中只有一个被执行,无论哪个被执行后,流程都会到End Case后下一条语句去。 Select Case和End Case必须成对出现。【例】某商店进行购物打折优惠活动促销,根据每位顾客一次性购物的消费额给予不同的折扣,具体方法如下:购物1500元以上的九五折优惠,购物2000元以上的九折优惠,(3) 购物2500元以上的八五折优惠,(4) 购物4000元以上的八折优惠。 程序代码如下:Private

16、 Sub Command1_Click() Dim x As Single, y As Single x = InputBox(请输入购物金额:) Select Case x Case Is 1000 Print 不优惠 y = x Case Is 2000 Print 九五折优惠 y = 0.95 * x Case Is 3000 Print 九折优惠 y = 0.9 * x Case Is = 5000 Print 八折优惠 y = 0.8 * xEnd Select Print 优惠后应收款额为:; y End Sub也可以用IfThenElseIf 语句实现:Private Sub F

17、orm_Click() Dim x As Single, y As Single x = InputBox(请输入购物金额:) If x 0 Then Print 输入的的金额有误 ElseIf x 1500 Then Print 不优惠 y = x ElseIf x 2000 Then Print 九五折优惠 y = 0.95 * x ElseIf x 2500 Then Print 九折优惠 y = 0.9 * x ElseIf x 0 Then y=1 Else If x0 Then y=-1 Else y=0End ifEnd if此例中的If语句的Else子句中又出现If语句,形成了

18、嵌套。留意:在选择结构的嵌套中,应注意Else与If的配对关系。【例4.7】:某航空公司规定:在旅游旺季7-9月,如果订票超过20含20张,优惠票价的15%;订票20张以下优惠票价的5%。在旅游淡季1-4月、11月、12月,如果订票超过20含20张,优惠票价的30%;订票20张以下优惠票价的20%。其它情况一律优惠10%。编程计算优惠后的单价和总金额。 设计步骤如下:1、设计界面:(如图4.5) 文本框Text1中输入月份文本框Text2中输入订票的数量文本框Text3中输入单价标签Label6中为优惠后的单价标签Label8中为优惠后的总金额2、编写事件代码:编写“计算优惠价和总金额的命令按

19、钮Command1的Click事件代码为:Private Sub Command1_Click() Dim m As Integer, n As Integer, p1 As Single m为月份,n为订 票的数量,p1为优惠前的单价Dim r As Integer, s As Single, p2 As Single r为优惠率,s这总金额,p2为优惠后的单价m = Val(Text1.Text)n = Val(Text2.Text)p1 = Val(Text3.Text)Select Case m Case 7 To 9 7月份到9月份 If n 20 Then r = 5 Else r

20、 = 15 超过20含20张,优惠15%;20张以下优惠5% Case Is = 4, 11, 12 1-4月份,11月份,12月份 If n 0,1,IIF(x0,-1,0) 实现。4.5、选择性控件 我们介绍两个选择性控件单选按钮和复选框。单选按钮必须成组出现,用户在一组单选按钮中必须而且最多只选择一项。而复选框可以根据用户的需要选定其中的一项或多项,或者都不选。4.5.1 单选按钮 单选按钮OptionButton控件,它的图形是,用来表示是否被选中。它的缺省名称为Option1、Option2。单选按钮必须成组出现,通常将两个或两个以上的单选控件放在一个Frame控件框架中,形成一个选

21、项组在选项组中使用单选按钮,用户只能选择其中的一项,当其中的一项被选中即图示为,也称为打开状态),其他选择按钮都被置于关闭状态即图示为)。要在Frame控件中形成一组OptionButton控件,首先绘制Frame,然后在内部绘制各OptionButton控件。下面介绍OptionButton控件的属性及事件:OptionButton控件的属性Value属性表示单选按钮的被选状态。True:被选中,也称为打开状态,图示为。False:未被选中,也称为关闭状态,图示为,默认值。、Alignment属性表示控件与其标题的对齐方式。0:单选按钮在左,标题在右,默认值。1:单选按钮在右,标题在左。、C

22、aption属性 设置单选按钮的文本注释内容,即单选按钮边上的的文本标题。、Style属性:指定单选按钮的显示风格,用于改善视觉效果。 0Standard:标准方式 1Granpical:图形方式、事件 单选按钮可接受Click事件,但通常不需要编写Click事件处理程序,因为单击单选按钮时,已将其状态改变,而是在其他命令按钮被按下时的相应Click事件处理程序中,根据单选按钮组的被选状态,进行不同的处理。所以,单选按钮组通常是为其他命令的Click事件处理程序提供选择条件。 4.5.2 复选框复选框控件CheckBox控件,它的图形是。复选框可以根据用户的需要选定其中的一项或多项,或者都不选

23、。当某一项被选中后,其左边的小方框就变成 。 、复选框控件的属性:、Value属性表示复选框的状态。0:未被选择,图示为,默认值。1:已被选择,图示为。2:图示变灰变暗),表示禁止用户选择。、Alignment属性表示控件与其标题的对齐方式。0:复选框在左,标题在右,默认值。1:复选框在右,标题在左、复选框控件事件:复选框控件可接受Click事件,但通常也不需要对复选框的Click事件编写处理程序,因为单击复选框时,也已将其状态改变。通常也是在其他命令按钮被按下时的相应Click事件处理程序中,根据复选框的被选状态,进行不同的处理。所以,复选框通常也是为其他命令的Click事件处理程序提供选择

24、条件【例4.8】:利用单选按钮和复选框控件字体的属性。设计步骤:1、建立用户界面并设置相应的属性:在窗体上添加一个标签控件Label1,Caption属性设置为:Visual Basic程序设计。绘制两个框架Frame1、Frame2和四个复选框Check1、Check2、Check3、Check4。在框架Frame1中,添加一组单选按钮Option1 、Option2 、Option3、 Option4。在框架Frame2 中,添加另一组单选按钮,Option5 、Option6、 Option7 、Option8。并设置上述控件相应的Caption属性 设置好的界面如图4.7:2.编写事件

25、代码:是否加删除线的复选框Check1的Click事件代码:Private Sub Check1_Click()If Check1.Value = 1 Then Label1.FontStrikethru = True Else Label1.FontStrikethru = False End IfEnd Sub是否加下划线的复选框Check2的Click事件代码:Private Sub Check2_Click()If Check2.Value = 1 Then Label1.FontUnderline = True Else Label1.FontUnderline = False En

26、d IfEnd Sub是否为粗体的复选框Check3的Click事件代码:Private Sub Check3_Click()If Check3.Value = 1 Then Label1.FontBold = True Else Label1.FontBold = False End IfEnd Sub是否为斜体的复选框Check4的Click事件代码:Private Sub Check4_Click()If Check4.Value = 1 Then 是否为斜体 Label1.FontItalic = True Else Label1.FontItalic = False End IfEn

27、d Sub将字体改为宋体的单选按钮Option1的Click事件代码如下:Private Sub Option1_Click()Label1.FontName = 宋体End Sub将字体改为隶书的单选按钮Option2的Click事件代码如下:Private Sub Option2_Click()Label1.FontName = 隶书End Sub将字体改为黑体的单选按钮Option3的Click事件代码如下:Private Sub Option3_Click()Label1.FontName = 黑体End Sub将字体改为楷体的单选按钮Option4的Click事件代码如下:Priva

28、te Sub Option4_Click()Label1.FontName = 楷体_Gb2312End Sub将字号改为12号字的单选按钮Option5的Click事件代码如下:Private Sub Option5_Click()Label1.FontSize = 12End Sub将字号改为16号字的单选按钮Option6的Click事件代码如下:Private Sub Option6_Click()Label1.FontSize = 16End Sub将字号改为20号字的单选按钮Option7的Click事件代码如下:Private Sub Option7_Click()Label1.FontSize = 20End Sub将字号改为24号字的单选按钮Option8的Click事件代码如下:Private Sub Option8_Click()Label1.FontSize = 24End Sub 3、程序运行的效果如图4.8: 4.6 计时器控件 计时器控件Timer能按照指定的时间间隔周期性地触发计时器Timer事件,并执行事件处理代码。它的缺省名称为Timer1、Timer2、。 计时器控件在设计时的图标是,但在运行时隐藏,它没有Visible属性。它的大小不可改变,也没有Width和Height属性。虽然它有Left和Top属性,但是由于它运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论