欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    vb选择结构程序设计.ppt

    • 资源ID:55140410       资源大小:117KB        全文页数:37页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    vb选择结构程序设计.ppt

    第5章 选择结构程序设计本章要点:1块结构条件语句IfThenEndIf的使用2多分支条件语句ElseIf的应用3多分支选择语句SelectCaseEndSelec的应用 选择结构是一种常用的基本结构,其特点是根据所给定的选择条件为真或假,来决定从不同操作中选择执行一种操作。选择结构程序设计 块If条件语句 Select Case 语句 应用举例返回退出 块If语句的嵌套 ElseIf条件语句If语句(语句(If.Then语句)语句)块If语句是用来判断条件成立与否,然后决定下一步怎么执行的一种控制语句,这种选择结构是最常用的双选择结构,即只有两种操作可以选择。如果条件为真,执行其中一个操作;如果条件为假,则执行另外一个操作。块结构if语句语法格式如下:IfThenElseEndIf说明:为必选项,它可以是关系表达式、布尔表达式、数值表达式或字符串表达式,但总的说来它是一个逻辑值的表达式,其返回结果必须是True或False。对于数值表达式,VB将0作为False,非0作为True来处理;对于字符串表达式,VB只允许出现包含数字的字符串,当字符串中的数字值为0时,则认为是False,否则认为是True。和可以是一条语句,也可以是多条语句。单行结构If语句的执行过程是这样的:首先计算的值,如果结果为True,则执行,否则,执行。T(真)F(假)条件满足?语句块1语句块2End If之后的语句选择结构流程图【例】设计界面如图5-2所示,用文本框Text1输入x的值,单击按钮时,在标签Label1中显示出x的绝对值。运行界面“求绝对值”按钮Command1的单击事件过程如下:PrivateSubCommand1_Click()x=Val(Text1.Text)将文本框中的字符内容转换成数值Ifx0ThenLabel1.Caption=xElseLabel1.Caption=-x根据x的正负确定显示结果EndSub使用该语句时,应该注意以下问题:(1)整个块结构必须以If开始,以EndIf结束。(2)块结构If语句中Then后面的语句不能与其写在同一行上,否则,必须加上分隔符。(3)块结构中的是可以省略的。省略后即简化为以下形式:IfThenEndIf这种形式的If语句主要用来判断一些操作是否执行。当条件成立时,根据完成的一定的操作;而当条件不成立时不做任何处理,直接执行下条语句。例如,例5.1也可以采用下列程序段来实现。x=Val(Text1.Text)Ifx0Thenx=-x取负数x的相反数EndIfLabel1.Caption=x(4)在块结构中,If后面显式的给出了判断条件,Else后面虽然没有显式的给出一个条件,但相当于存在一个与If部分相反的隐含条件。返回 在实际应用中,经常会遇到“多分支”选择的程序,即从多种情况中选择执行其中一种情况,这时,就要使用块if语句的嵌套。块结构If语句可以嵌套,即在上述结构中的和部分仍然可以包含另外一个块结构If语句。如果在条件成立或不成立的情况下要继续判断其他条件,则可以在语句块的位置上再使用另外一个块结构条件语句。5.2 块块ifif语句的嵌套语句的嵌套If子句部分的嵌套结构Else子句部分的嵌套结构使用嵌套语句时应注意以下问题:(1)如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚,便于阅读和查错。(2)每一个块结构都必须以If开始,以EndIf结束。(3)内层嵌套的块结构中除了满足该层规定的条件外,还必须首先满足外层结构中相应位置的条件。(4)VB中对块嵌套的层数没有限制,在嵌套的块结构中仍然可以继续嵌套其他的块结构,但嵌套时外层的块结构必须完全“包住”内层的块结构,不能相互“骑跨”。(5)利用块If语句的嵌套可以解决“多分支”选择的问题。【例】建立如图5-3所示的界面,输入任一点的坐标(X,Y),判断该点位于哪个象限。在平面直角坐标系中,点所在的象限有以下4种情况:X0,Y0点位于第一象限内X0,Y0点位于第四象限内X0点位于第二象限内X0,Y0ThenIfy0ThenPrint该点位于第一象限ElsePrint该点位于第四象限EndIfElseIfy0ThenPrint该点位于第二象限ElsePrint该点位于第三象限EndIfEndIfEndSub程序代码如下:程序运行界面【例】编程序求一元二次方程ax2+bx+c=0的根(a不等于零)。分析:根据数学知识,要求一元二次方程的根,必须知道方程的三个系数a、b、c的值,然后根据判别式b2-4ac的值的情况判断方程的根。方程的根有以下三种情况:当b2-4ac0时,方程有两个不相等的实根;当b2-4ac=0时,方程有两个相等的实根;当b2-4ac=0ThenIfdert0Thenr=Sqr(dert)/(2*a)x1=p+rx2=p-rElsex1=px2=pEndIfLabel5.Caption=x1=&x1&str&x2=&x2Elser=Sqr(-dert)/(2*a)Label5.Caption=x1=&p&+&r&i&str&x2=&p&-&r&iEndIfEndSub返回5.3 ElseIf语句语句ElseIf子句的格式:If 条件1 then 语句块1ElseIf 条件2 then 语句块2Else 语句块n+1End If对ElseIf子句的格式说明:(1)可以放置任意多个ElseIf子句。(2)关键字ElseIf中间没有空格,不能写成ElseIf。ElseIf子句的功能:依次判断条件,如某一条件成立,则执行其下面的语句块;如果所有条件均不成立,则执行Else后面的语句。在相应语句块执行完后,会跳过EndIf,执行其后面的语句。ElseIf结构执行过程功能说明:(1)不管有几个ElseIf子句,程序执行完一个语句块后,其余ElseIf子句不再执行。(2)当多个ElseIf子句中的条件都成立时,只执行第一个条件成立的子句中的语句块。因此,在使用ElseIf语句时,要特别注意各判断条件的前后次序。【例】输入一个学生的成绩score,根据其所在分数段给出他的考试等级。score60时,打印“不及格”;60=score=70时,打印“一般”;70score=80时,打印“中等”;80score=90时,打印“良好”;90score100时,打印“成绩有问题”。该程序就是一个多分支选择的问题,可以使用ElseIf语句实现。程序代码如下:PrivateSubCommand1_Click()DimscoreAsSinglescore=Val(Text1.Text)Ifscore=60Andscore70Andscore80Andscore90Andscore=100ThenPrint优秀ElsePrint成绩有问题EndIfEndSub因为只有在前一个条件不成立的情况下,才有可能继续判断下一个条件是否成立,所以,上例中的条件部分也可以进一步简化,改成如下形式:Ifscore60ThenPrint不及格ElseIfscore=70ThenPrint一般ElseIfscore=80ThenPrint中等ElseIfscore=90ThenPrint良好Elseifscore=100ThenPrint优秀ElsePrint成绩有问题EndIf【例】设计一个口令检测程序,当用户输入的口令正确时,显示“你已成功进入本系统”,否则,显示“口令错!请重新输入”。如果连续三次输入了口令仍不正确,则提示“你无权使用本系统”。分析:假设使用一个文本框Text1来接收口令,运行时用户输入完口令并按回车键后系统才对输入的口令进行检查,因此本例使用了Text1的KeyUp事件。当焦点位于文本框内,按下键盘上任一键后会产生KeyUp事件,同时返回按键代码KeyCode。回车键的代码为13,所以程序首先判断用户是否在Text1中按下了回车键,若KeyCode13,表示口令输入完。说明:在程序中是使用了一个静态变量I,用于统计输入错误口令的次数。静态变量I只在第一次判断口令时被初始化为0,以后每次执行该过程时,如果口令错误,则I的值累加1,因此,当I的值为3时,表示用户已经连续三次输入了错误口令。程序代码如下:PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)StaticIAsIntegerIfKeyCode=13ThenIfUCase(Text1.Text)=abcdThenLabel2.Caption=你已成功进入本系统ElseIfI3ThenI=I+1Label2.Caption=口令错!请重新输入ElseMsgBox你无权使用本系统EndIfEndIfEndSub返回5.4 Select Case语句语句Select Case的结构形式为:Select Case Case Case Case Case ElseEnd Select格式说明:(1)“测试表达式”可以是数值表达式或字符串表达式。(2)“表达式列表”与“测试表达式”的类型必需相同。(3)“表达式列表”由下表形式的表达式组成。(4)当使用多个表达式组成列表时,表达式与表达式之间要用英文逗号“,”隔开。形式示例说明(1)表达式Case100+a数值或字符串表达式(2)一组用逗号分隔的枚举值Case2,4,6,8测试表达式的值等于2,4,6,8之一(3)表达式1To表达式2Case1To101测试表达式10(4)Is关系运算符表达式CaseIs20测试表达式20SelectCase语句功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。SelectCase语句的执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个Case子句中情况,如果找到了,则执行该Case子句下面的语句块,然后执行EndSelect后面的语句;如果没找到,则执行CaseElse后面的语句块,然后执行EndSelect后面的语句。【例】用SelectCase语句代替ElseIf语句来实现成绩的鉴定。保持界面不变,双击“鉴定”按钮,修改代码如下:Private Sub Command1_Click()单击“鉴定”按钮Dim x!单击“鉴定”按钮 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 SelectEnd Sub【例】某交易中介公司按交易双方成交额收取中介费用,收费标准如下:交易额=100005%5000=交易额100003%1000=交易额50002%500=交易额10001%交易额500免费假设交易额通过文本框Text1输入,则“计算费用”按钮Command1的事件代码如下:PrivateSubCommand1_Click()Trade=Val(Text1.Text)SelectCaseTradeCaseIs500Discount=0CaseIs1000CaseIs5000CaseIs10000CaseElseEndSelectFee=Trade*DiscountPrintFeeEndSub在解决多分支选择情况的程序时,采用SelectCase语句比较方便,并且程序结构清楚,便于阅读和修改。IIf 函数VB中还提供了一个选择函数IIf 函数,用来实现简单的选择结构。其功能是根据表达式的值,来返回两部分中的一个。其语法格式为:IIf(,)例如,求分段函数:y=函数值的语句可以简单地表示为:y=Iif(x0,2*x+3,4-3*x)返回5.5 应用举例应用举例【例】:猜数游戏。由计算机任意设置一个1100之间的整数,然后让用户猜出这个数是多少。说明:为了引导用户猜中由计算机设置的随机数,可以在猜数的过程中给以适当的提示。即在每次猜完之后,计算机显示相应的提示信息,用户可以根据这些信息继续猜,逐步接近要猜的数,直至猜中。当用户猜的数与目标数之间相差不超过2时,提示“接近了”;相差不超过10时,提示“有些远”;相差超过10时,提示“太远了”。PrivateSubForm_Load()ClsRandomizenumber=Int(Rnd*100)+1MsgBox计算机设置了一个1100之间的整数,&vbCrLf&_请您猜出这个数是多少。&vbCrLf&_如果输入-1,则停止猜数,并输出要猜的数。EndSubPrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)Dimguess,diff,kAsIntegerIfKeyCode=13Thenguess=Val(Text1.Text)Ifguess=-1ThenMsgBox要猜的数是&number:ExitSubdiff=Abs(number-guess)Ifdiff=0Thenk=0ElseIfdiff=2Thenk=1ElseIfdiff=10Thenk=2Elsek=3EndIfSelectCasekCase0MsgBox恭喜你,猜对了!Case1MsgBox接近了,再努力!Case2MsgBox有些远,再努力!Case3MsgBox太远了,继续努力!EndSelectEndIfEndSub【例】:编程计算某年某月某日是星期几。分析:该程序大致可分为三部分:(1)输入部分:输入年、月、日,可通过InputBox函数来实现。(2)计算部分:用来完成对输入的日期是星期几的计算,因此它是本题的关键。在这一部分应解决以下几个问题:判断平年、闰年。凡是能被4整除但不能被100整除的年份为闰年,如1980年。凡是能被400整除的年份为闰年,如2000年。除以上两种情况以外的其余年份都是平年。计算总天数。总天数的计算公式为:总天数=平年累积值+闰年累积值+月累积值+日期计算星期几。查阅有关资料可知,1899年12月31日是星期日,因此可把week的值定为1;week的初值加上总天数并对7取模,所得的余数即为星期几。(3)输出部分:把计算结果以适当的格式输出。程序如下:PrivateSubForm_Click()输入部分DimY,M,D,Month2,day0,day1,daysum,weekAsIntegerY=InputBox(请输入当前日期&先输入年份(1901-2100)M=InputBox(请输入月份(112):)D=InputBox(请输入日(131):)计算部分If(YMod1000)And(YMod4=0)Or(YMod100=0)And(YMod400=0)ThenMonth2=29ElseMonth2=28EndIfSelectCaseMCase1day0=31day1=0 Case2day0=Month2day1=31Case3day0=31day1=Month2+31Case4day0=30day1=Month2+62Case5day0=31day1=Month2+92Case6day0=30day1=Month2+123Case7day0=31day1=Month2+153Case8day0=31day1=Month2+184Case9day0=30day1=Month2+215Case10day0=31day1=Month2+245Case11day0=30day1=Month2+276Case12day0=31day1=Month2+306EndSelectIf(D1)Thendaysum=(Y-1901)+(Y-1901)/4+day1+Ddaysum=Int(daysum+0.5)ElseMsgBox数据输入错误!EndIfweek=(week+daysum)Mod7输出部分PrintY;“年”;M;“月”;D;“日是”;SelectCaseweekCase0Print-星期日-Case1Print-星期一-Case2Print-星期二-Case3Print-星期三-Case4Print-星期四-Case5Print-星期五-Case6Print-星期六-EndSelectEndSub本章小结本章中主要介绍了一种常用的程序控制结构选择结构以及VB中提供的用来实现选择结构流程控制的语句:块结构条件语句IfThenEndIf多分支选条件语句ElseIf多分支选择语句SelectCaseEndSelect在解决实际问题时,经常使用块结构的选择语句,因为这种语句既可以解决单分支也可以解决多分支的选择问题,并且结构相对较好,灵活性较强。最后,通过一些综合性的例子讲述了各种选择结构的程序的解决方法。需要重点掌握每种语句的语法结构以及使用情况,会适当的运用各种语句解决问题,尤其注意语句的嵌套使用情况,避免产生混乱。

    注意事项

    本文(vb选择结构程序设计.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开