![vb选择结构程序设计ppt课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd1.gif)
![vb选择结构程序设计ppt课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd2.gif)
![vb选择结构程序设计ppt课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd3.gif)
![vb选择结构程序设计ppt课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd4.gif)
![vb选择结构程序设计ppt课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd/9943c308-27a8-4ff5-9f3b-3b4dec1a00fd5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 选择结构程序设计本章要点:1块结构条件语句IfThenEnd If的使用2多分支条件语句ElseIf的应用 3 多分支选择语句Select CaseEnd Selec的应用 选择结构是一种常用的基本结构,其特点是根据所给定的选择条件为真或假,来决定从不同操作中选择执行一种操作。 选择结构程序设计 5.1块块If语句语句If.Then语句)语句)块If语句是用来判断条件成立与否,然后决定下一步怎么执行的一种控制语句,这种选择结构是最常用的双选择结构,即只有两种操作可以选择。如果条件为真,执行其中一个操作;如果条件为假,则执行另外一个操作。块结构if语句语法格式如下:If ThenElse
2、End If阐明:为必选项,它可以是关系表达式、布尔表达式、数值表达式或字符串表达式,但总的说来它是一个逻辑值的表达式,其返回结果必须是True或False。对于数值表达式,VB将0作为False,非0作为True 来处理;对于字符串表达式,VB只允许出现包含数字的字符串,当字符串中的数字值为0时,则认为是False,否则认为是True。和可以是一条语句,也可以是多条语句。单行结构If语句的执行过程是这样的:首先计算的值,如果结果为True,则执行,否则,执行。T真)F假)条件满足?语句块1语句块2End If之后的语句选择结构流程图【例5.1】设计界面如图5-2所示,用文本框Text1输入x
3、的值,单击按钮时,在标签Label1中显示出x的绝对值。 运行界面“求绝对值按钮Command1的单击事件过程如下:Private Sub Command1_Click()x = Val(Text1.Text) 将文本框中的字符内容转换成数值If x 0 Then Label1.Caption = x Else Label1.Caption = -x 根据x的正负确定显示结果End Sub使用该语句时,应该注意以下问题:(1整个块结构必须以If开始,以End If结束。(2块结构If 语句中Then后面的语句不能与其写在同一行上,否则,必须加上分隔符。(3块结构中的是可以省略的。省略后即简化为
4、以下形式: If Then End If 这种形式的If语句主要用来判断一些操作是否执行。当条件成立时,根据完成的一定的操作;而当条件不成立时不做任何处理,直接执行下条语句。例如,例5.1也可以采用下列程序段来实现。x = Val(Text1.Text)If x 0 Then x = -x 取负数x的相反数End If Label1.Caption = x (4在块结构中,If后面显式的给出了判断条件,Else后面虽然没有显式的给出一个条件,但相当于存在一个与If部分相反的隐含条件。 在实际应用中,经常会遇到“多分支选择的程序,即从多种情况中选择执行其中一种情况,这时,就要使用块if语句的嵌套
5、。 块结构If语句可以嵌套,即在上述结构中的和部分仍然可以包含另外一个块结构If语句。如果在条件成立或不成立的情况下要继续判断其他条件,则可以在语句块的位置上再使用另外一个块结构条件语句。5.2 块块if语句的嵌套语句的嵌套If子句部分的嵌套结构Else子句部分的嵌套结构使用嵌套语句时应注意以下问题:(1如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚,便于阅读和查错。(2每一个块结构都必须以If开始,以End If结束。(3内层嵌套的块结构中除了满足
6、该层规定的条件外,还必须首先满足外层结构中相应位置的条件。(4VB中对块嵌套的层数没有限制,在嵌套的块结构中仍然可以继续嵌套其他的块结构,但嵌套时外层的块结构必须完全“包住内层的块结构,不能相互“骑跨”。(5利用块If语句的嵌套可以解决“多分支选择的问题。【例5.2】建立如图5-3所示的界面,输入任一点的坐标X,Y),判断该点位于哪个象限。在平面直角坐标系中,点所在的象限有以下4种情况: X0 ,Y0 点位于第一象限内 X0, Y0 点位于第四象限内 X0 点位于第二象限内 X0, Y 0 Then If y 0 Then Print 该点位于第一象限 Else Print 该点位于第四象限
7、End IfElse If y 0 Then Print 该点位于第二象限 Else Print 该点位于第三象限 End IfEnd IfEnd Sub程序代码如下:程序运行界面【例5.3】编程序求一元二次方程ax2+bx+c=0的根a不等于零)。分析:根据数学知识,要求一元二次方程的根,必须知道方程的三个系数a、b、c的值,然后根据判别式b2-4ac的值的情况判断方程的根。方程的根有以下三种情况:当b2-4ac0时,方程有两个不相等的实根;当b2-4ac=0时,方程有两个相等的实根;当b2-4ac= 0 Then If dert 0 Then r = Sqr(dert) / (2 * a)
8、 x1 = p + r x2 = p - r Else x1 = p x2 = p End If Label5.Caption = x1= & x1 & str & x2= & x2Else r = Sqr(-dert) / (2 * a) Label5.Caption = x1= & p & + & r & i & str & x2= & p & - & r & iEnd IfEnd Sub5.3 ElseIf语句语句ElseIf子句的格式:If 条件1 then 语句块1Else
9、If 条件2 then 语句块2Else 语句块n+1End If对ElseIf子句的格式说明:(1可以放置任意多个ElseIf子句。(2关键字ElseIf中间没有空格,不能写成Else If。ElseIf子句的功能:依次判断条件,如某一条件成立,则执行其下面的语句块;如果所有条件均不成立,则执行Else后面的语句。在相应语句块执行完后,会跳过End If,执行其后面的语句。 Else If结构执行过程功能说明:(1不管有几个ElseIf子句,程序执行完一个语句块后,其余ElseIf子句不再执行。(2当多个ElseIf子句中的条件都成立时,只执行第一个条件成立的子句中的语句块。因此,在使用El
10、seIf语句时,要特别注意各判断条件的前后次序。【例5.4】输入一个学生的成绩score,根据其所在分数段给出他的考试等级。score60时,打印“不及格”;60=score=70时,打印“普通”; 70score=80时,打印“中等”; 80score=90时,打印“良好”;90score100时,打印“成绩有问题”。 该程序就是一个多分支选择的问题,可以使用ElseIf语句实现。程序代码如下:Private Sub Command1_Click()Dim score As Singlescore = Val(Text1.Text)If score = 60 And score 70 And
11、 score 80 And score 90 And score = 100 Then Print 优秀Else Print 成绩有问题End IfEnd Sub因为只有在前一个条件不成立的情况下,才有可能继续判断下一个条件是否成立,所以,上例中的条件部分也可以进一步简化,改成如下形式:If score 60 Then Print 不及格ElseIf score = 70 Then Print 普通ElseIf score = 80 Then Print 中等ElseIf score = 90 Then Print 良好Elseif score = 100 Then Print 优秀Else
12、Print 成绩有问题End If【例5.6】设计一个口令检测程序,当用户输入的口令正确时,显示“你已成功进入本系统”,否则,显示“口令错!请重新输入”。如果连续三次输入了口令仍不正确,则提示“你无权使用本系统”。分析:假设使用一个文本框Text1来接收口令,运行时用户输入完口令并按回车键后系统才对输入的口令进行检查,因此本例使用了Text1的KeyUp事件。当焦点位于文本框内,按下键盘上任一键后会产生KeyUp事件,同时返回按键代码KeyCode。回车键的代码为13,所以程序首先判断用户是否在Text1中按下了回车键,若KeyCode13,表示口令输入完。 阐明:在程序中是使用了一个静态变量
13、I,用于统计输入错误口令的次数。静态变量I只在第一次判断口令时被初始化为0,以后每次执行该过程时,如果口令错误,则I的值累加1,因此,当I的值为3时,表示用户已经连续三次输入了错误口令。程序代码如下:Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)Static I As IntegerIf KeyCode = 13 Then If UCase(Text1.Text) = abcd Then Label2.Caption = 你已成功进入本系统 ElseIf I 3 Then I = I + 1 Label2.Captio
14、n = 口令错!请重新输入 Text1.SetFocus Else MsgBox 你无权使用本系统 End IfEnd IfEnd Sub5.4 Select Case语句语句Select Case的结构形式为:Select Case Case Case Case Case ElseEnd Select格式说明:(1)“测试表达式可以是数值表达式或字符串表达式。(2)“表达式列表与“测试表达式的类型必需相同。(3)“表达式列表由下表形式的表达式组成。(4当使用多个表达式组成列表时,表达式与表达式之间要用英文逗号“,”隔开。方式例如阐明(1表达式Case 100+a数值或字符串表达式(2一组用逗
15、号分隔的枚举值Case 2,4,6,8测试表达式的值等于2,4,6,8之一(3表达式1 To表达式2Case 1 To 101 测试表达式 10(4Is 关系运算符表达式Case Is 20 测试表达式 20Select Case语句功能:根据“测试表达式的值,选择第一个符合条件的语句块执行。Select Case语句的执行过程是:先求“测试表达式的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行End Select后面的语句;如果没找到,则执行Case Else后面的语句块,然后执行End Select后面的语句。【例5.7】用Sele
16、ct Case语句代替ElseIf语句来实现成绩的鉴定。保持界面不变,双击“鉴定按钮,修改代码如下:Private Sub Command1_Click() 单击“鉴定按钮Dim x! 单击“鉴定按钮 x = Text1.Text Select Case x Case Is = 90 Text2.Text = 优秀 Case Is = 80在x90不成立时,再判断x80是否成立 Text2.Text = 良好 Case Is = 70 Text2.Text = 中 Case Is = 60 Text2.Text = 及格 Case Else Text2.Text = 不及格 End Selec
17、tEnd Sub【例5.8】某交易中介公司按交易双方成交额收取中介费用,收费标准如下:交易额=10000 5%5000=交易额10000 3%1000=交易额5000 2%500=交易额1000 1%交易额500 免费假设交易额通过文本框Text1输入,那么“计算费用按钮Command1的事件代码如下:Private Sub Command1_Click() Trade=Val(Text1.Text) Select Case Trade Case Is500 Discount=0 Case Is1000 Discount=0.01 Case Is5000 Discount=0.02 Case
18、Is10000 Discount=0.03 Case Else Discount=0.05 End Select Fee = Trade * Discount Print FeeEnd Sub在解决多分支选择情况的程序时,采用Select Case语句比较方便,并且程序结构清楚,便于阅读和修改。 IIf 函数VB中还提供了一个选择函数IIf 函数,用来实现简单的选择结构。其功能是根据表达式的值,来返回两部分中的一个。其语法格式为:IIf(, , )0,340, 32xxxx例如,求分段函数:y= 函数值的语句可以简单地表示为:y=Iif(x0,2*x+3,4-3*x)5.5 应用举例应用举例【
19、例5.9】:猜数游戏。由计算机任意设置一个1100之间的整数,然后让用户猜出这个数是多少。阐明:为了引导用户猜中由计算机设置的随机数,可以在猜数的过程中给以适当的提示。即在每次猜完之后,计算机显示相应的提示信息,用户可以根据这些信息继续猜,逐步接近要猜的数,直至猜中。当用户猜的数与目标数之间相差不超过2时,提示“接近了”;相差不超过10时,提示“有些远”;相差超过10时,提示“太远了”。Private Sub Form_Load() Cls Randomize number = Int(Rnd * 100) + 1 MsgBox 计算机设置了一个1100之间的整数, & vbCrLf
20、& _ 请您猜出这个数是多少。 & vbCrLf & _ 如果输入-1,则停止猜数,并输出要猜的数。End SubPrivate Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)Dim guess, diff, k As IntegerIf KeyCode = 13 Then guess = Val(Text1.Text) If guess = -1 Then MsgBox 要猜的数是 & number: Exit Sub diff = Abs(number - guess) If diff = 0 Th
21、en k = 0 ElseIf diff = 2 Then k = 1 ElseIf diff = 10 Then k = 2 Else k = 3 End If Select Case k Case 0 MsgBox 恭喜你,猜对了! Case 1 MsgBox 接近了,再努力! Case 2 MsgBox 有些远,再努力! Case 3 MsgBox 太远了,继续努力! End SelectEnd IfEnd Sub【例5.10】:编程计算某年某月某日是星期几。分析:该程序大致可分为三部分:(1输入部分:输入年、月、日,可通过InputBox函数来实现。(2计算部分:用来完成对输入的日期是
22、星期几的计算,因此它是本题的关键。在这一部分应解决以下几个问题:判断平年、闰年。凡是能被4 整除但不能被100整除的年份为闰年,如1980年。凡是能被400整除的年份为闰年,如2000年。除以上两种情况以外的其余年份都是平年。计算总天数。总天数的计算公式为:总天数=平年累积值+闰年累积值+月累积值+日期计算星期几。查阅有关资料可知,1899年12月31日是星期日,因此可把week的值定为1;week的初值加上总天数并对7取模,所得的余数即为星期几。(3输出部分:把计算结果以适当的格式输出。程序如下 :Private Sub Form_Click()输入部分Dim Y, M, D, Month2
23、, day0, day1, daysum, week As IntegerY = InputBox(请输入当前日期 & 先输入年份(1901-2100)M = InputBox(请输入月份112):)D = InputBox( 请输入日131):)计算部分If (Y Mod 100 0) And (Y Mod 4 = 0) Or (Y Mod 100 = 0) And (Y Mod 400 = 0) Then Month2 = 29Else Month2 = 28End IfSelect Case M Case 1 day0 = 31 day1 = 0 Case 2 day0 = Month2 day1 = 31 Case 3 day0 = 31 day1 = Month2 + 31 Case 4 day0 = 30 day1 = Month2 + 62 Case 5 day0 = 31 day1 = Month2 + 92 Case 6 day0 = 30 day1 = Month2 + 123 Case 7 day0 = 31 day1 = Month2 + 153 Case 8 day0 =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二手车个体交易策划合同范本
- 2025年专利权交换协议格式
- 2025年个人信用管理协议书
- 2025年二手汽车交易未过户合同模板
- 2025年农资研发与实验劳动合同
- 2025年体重管理服务协议
- 2025年企业员工住房公积金贷款合同
- 2025年上海市新能源汽车产业投资合作协议
- 2025年养殖场租赁协议正式版本
- 2025年云服务器租用合同示范
- 安全生产技术规范 第25部分:城镇天然气经营企业DB50-T 867.25-2021
- 现代企业管理 (全套完整课件)
- 走进本土项目化设计-读《PBL项目化学习设计》有感
- 《网店运营与管理》整本书电子教案全套教学教案
- 教师信息技术能力提升培训课件希沃的课件
- 高端公寓住宅项目营销策划方案(项目定位 发展建议)
- 执业兽医师聘用协议(合同)书
- 第1本书出体旅程journeys out of the body精教版2003版
- [英语考试]同等学力英语新大纲全部词汇
- 2022年肝动脉化疗栓塞术(TACE)
- 形式发票格式2 INVOICE
评论
0/150
提交评论