vb第4章 选择结构程序设计.ppt

上传人:max****ui 文档编号:11498195 上传时间:2020-04-25 格式:PPT 页数:29 大小:507KB
返回 下载 相关 举报
vb第4章 选择结构程序设计.ppt_第1页
第1页 / 共29页
vb第4章 选择结构程序设计.ppt_第2页
第2页 / 共29页
vb第4章 选择结构程序设计.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
第4章选择结构程序设计,对给定的条件进行分析、比较和判断,并根据判断结果采取不同的操作。,实现语句If-Then-elseSelectCase/EndSelect,4.1If条件语句,4.2SelectCase语句,4.3条件函数,4.4单选按钮、复选框、框架,4.5应用举例,4.1.2单行结构,“条件”为True,执行“语句块1”,否则执行“语句块2”。最后交汇到一起,执行if的下一语句。,4.1If条件语句,单行结构:条件判断和分支在一行块结构:分多行实现。,Ifn25ThentxtABC.Text=“ABC”,(3)“条件”值逻辑类型的常量、变量、关系表达式或逻辑表达式。数值表达式,“非0”值:True,”0”:False,If条件Then语句块1Else语句块2,If条件Then语句块1,(1)“语句块1”和“语句块2”:一个或多个VB语句。(2)“语句块2”省略:单分支,4.1.2单行结构的条件语句,例4-2求一个数x的绝对值。单分支的IF语句,PrivateSubCmdOk_Click()DimxAsSinglex=Val(Text1.Text)Label3.Caption=x=x,”y=”;yEndSub,IfThenElseIfThenElseEndIf,4.1.3块结构,“条件1”为True:执行“语句块1”;否则测试“条件2”,“条件2”为True:执行“语句块2”,所有条件都不成立:执行“语句块n+1”,之后执行EndIf后面的语句。,【说明】(1)EndIf不能省略。(2)Else和ElseIf子句都是可选的。,IfThenElseIfThenElseEndIf,3)有多个ElseIf选项:多分支形式。,IfThenElseEndIf,2)只选Else子句:,IfThenEndIf,1)无可选项:,4.1.3块结构,例4-4求一元二次方程ax2+bx+c=0的根,a不等于0。,通过块结构多分支IF语句来完成。IfElseIfELSE中依次判别求得虚根、实根、等根三种情况。,d=b*b-4*a*cp=-b/(2*a)Ifd0Then求两个实根r=Sqr(d)/(2*a)x1=p+rx2=p-rPrint“x1=”;x1,”x2=”;x2Else等于0,求两个相等的根x1=p:x2=pEndIf,4.1.4条件语句的嵌套,例:已知x,y,z三个数,使得xyz。用一个IF语句和一个嵌套的IF语句实现:,IfThenIfThenEndIfEndIf,If或Else的语句块中又包含If语句。,IfxyThent=x:x=y:y=tIfyzThent=y:y=z:z=tIfxyThent=x:x=y:y=tEndIfEndIf,【注意】书写锯齿型;If与EndIf配对,例4-5从键盘上输入学生的分数,计算并输出及格(大于等于60分的)、不及格人数及平均分数。,PrivateSubCommand1_Click()Dimn,n1AsSingle,n2AsSingle,scoreAsSingleDimtotalAsSinglemsg$=请输入分数(输入负数结束)msgtitle$=输入数据start:一个标号,与GoTostart构成循环score=Val(InputBox(msg$,msgtitle$)输入成绩Ifscore100Then是无效成绩GoToFinish,则转到FinishElse否则,对成绩进行处理求总分n=n+1统计学生的个数n1=n1+1统计不及格人Elsen2=n2+1统计及格人数EndIfEndIfGoTostart继续输入下一成绩Finish:结束处理Text1.Text=Str$(n2)开始输出结果Text2.Text=Str$(n1)Text3.Text=Str$(total/n)EndSub,无条件转移语句,无条件转移语句,total=total+score,Ifscore60Then,4.2SelectCase语句,情况语句,适用于一个条件的判断结果有多个定值,不同取值对应不同分支。,SelectCase测试表达式Case测试值1语句块1Case测试值2语句块2CaseElse语句块nEndSelect,数值型或字符串表达式,【功能】“测试表达式”的值,依次与测试值比较:匹配:执行该Case子句后的语句块,都不匹配:则执行CaseElse子句后的语句块。,:与同类型表达式例:“Y”一组枚举表达式(用逗号分隔)2,4,6,8表达式1To表达式2(表达式15,1,2),IIf函数嵌套:实现多分支判断。,y=IIf(x10,0,IIf(x0,5+2*x,x-5),4.3.2Choose函数,4.3条件函数,Choose(数字类型变量,值为1的返回值,值为2的返回值),根据“数字类型变量”的值,返回参数列表中相应的值。,Choose(2,3,4,5,6)变量的值为2,返回“3,4,5,6”列表中第2个值4Choose(3,3,4,5,6)返回5Choose(nop,”,”,”,”)当nop=3时,返回字符串”,Choose(5,4,3,2,1)函数:返回Null。,值非整数:自动取整。,值小于1或大于列出的选择项数目:返回Null。,4.4单选按钮、复选框、框架,4.4.1单选按钮与复选框,单选按钮在一组中必须且最多只能选中一项;被选中时,左侧的圆圈中出现一个黑点;复选框在一组中可以同时选中一项或多项,甚至一个不选。被选中时,左侧的方框中出现一个对勾。,选择性控件,用来指示用户进行项目选择。,Caption:文本标题。Alignment0:控件钮在左边,标题显示在右边。1:控件钮在右边,标题显示在左边。Value(默认属性)单选钮复选框True:选定0-Unchecked:未被选定False:未选定(默认值)1-Checked:选定2-Grayed:灰色,禁止选择,单选钮和复选框,常用属性,常用事件-Click,单击时自动改变状态,不需要编写过程。,应用程序中检测控件的Value,判断控件当前状态。,单选钮和复选框,5.1单选钮和复选框,例4-7当选择了“所在学院”和“学习课程”后,单击“确定”,则选择结果显示在下面的文本框中。,SelectCaseTrueCaseOpthh.ValueDISPLAY=Opthh.CaptionCaseOptlj.ValueDISPLAY=Optlj.CaptionCaseOptjs.ValueDISPLAY=Optjs.CaptionEndSelectDISPLAY=您在+DISPLAY+,+学习的课程有:,IfChksx.ValueThenDISPLAY=DISPLAY+Chksx.Caption+EndIfIfChkwl.ValueThenDISPLAY=DISPLAY+Chkwl.Caption+EndIfIfChklx.ValueThenDISPLAY=DISPLAY+Chklx.Caption+EndIfIfChkjg.ValueThenDISPLAY=DISPLAY+Chkjg.Caption+EndIfTxtxs.Text=DISPLAY,转换为Boolean型非0:True0:False(P29),0-Unchecked:未被选定1-Checked:选定,4.4.2框架,不同框架中控件相对独立,不互相干扰;操作更直观、更方便;,把具有同一性质的控件集中在一起。,创建方法:先建框架,然后在其中建立控件。,框架内的控件都要包在框架内,否则认为在窗体上;将框架外的控件拖到框架内,不是框架的一部分。,5.2框架,常用属性,框架,常用事件,Click、DblClick:一般不需要编写框架的事件过程。,4.4.2框架,例4-8当用户选择了具体的“字体”和“对齐方式”后,单击“确定”,通过文本框显示效果。,【属性设置】,Txtxs.FontName=IIf(Optst.Value,宋体,黑体)SelectCaseTrueCaseOptzq.ValueTxtxs.Alignment=0CaseOptjz.ValueTxtxs.Alignment=2CaseOptyq.ValueTxtxs.Alignment=1EndSelect,例4-9求a、b、c中的最大数。,4.5应用举例,4.5.1求最大数、最小数,PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerDimmaxAsIntegera=InputBox(“请输入a的值”)b=InputBox(“请输入b的值”)c=InputBox(“请输入c的值”)max=aIfmaxbThenmax=bIfmaxcThenmax=cPrinta=”;a,”b=”;b,”c=”;cPrint“a、b、c中最大数是:”;maxEndSub,4.5应用举例,设置一个结果变量并赋初值累加:0计数:0累积:1用赋值语句将满足条件的数据x累入结果变量。求累加和Sum:Sum=Sum+x求累积Result:Result=Result*x求个数Count:Count=Count+1,4.5.2累和、累积与计数,例4-10实现110整数加法和乘法的计算机考试程序。,定义窗体级变量DimExpAsStringDimResultAsSingleDimRightAsInteger,WrongAsInteger,PictureBox,PrivateSubForm_Load()DimOptAsInteger,OpAsString*1Text1.Text=:Label1.Caption=RandomizeSelectCaseOptCase1Op=+:Result=Num1+Num2Case2Op=:Result=Num1*Num2EndSelectExp=Label1.Caption=EndSub,产生两个操作数,Num1=Int(10*Rnd+1)Num2=Int(10*Rnd+1),Opt=Int(2*Rnd+1),产生操作符,Str(Num1)+Op+Str(Num2)+=,Exp,PrivateSubCommand1_Click()IfThen答题正确Picture1.PrintExp;Text1;Tab(12);统计正确题数ElsePicture1.Print统计错误题数EndIfText1=Form_Load显示下一题EndSub,PrivateSubCommand2_Click()显示最终结果Picture1.Print-Picture1.Print共计算Picture1.Print得Text1;Tab(12);,Wrong=Wrong+1,(Right+Wrong),Int(Right/(Right+Wrong)*100),4.5应用举例,例4-13判断键盘键入的字符。,ms=请输入一个字母或数字“:i=InputBox(ms)IfNotIsNumeric(i)Then键入的不是“数字”IfLen(i)0ThenSelectCaseiCaseAToZMsgBox您输入的是大写字母+iCaseaTozMsgBox您输入的是小写字母+iCaseElseMsgBox输入非法!EndSelectEndIf,ElseSelectCaseVal(i)Case1,3,5,7,9MsgBox您输入的是奇数+iCase2,4,6,8MsgBox您输入的是偶数+iCaseElseMsgBox输入非法!EndSelectEndIf,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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