




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章主要内容:条件表达式单条件选择语句多条件选择语句计时器控件单选钮和复选框控件,第5章选择结构设计,5.1条件表达式在条件语句中作为判断依据的表达式称为“条件表达式”,条件表达式的取值为布尔值:真(True)或假(False)。在VB表达式中,True的值等于1,False的值等于0。根据“条件”的简单或复杂程度,条件表达式可以分为两类:关系表达式与布尔表达式。5.1.1关系运算符与关系表达式1.关系运算符关系运算符的作用是对两个表达式的值进行比较,若关系成立,则返回True,否则返回False。VB提供了6种关系运算符,见表5-1。,表5-1关系运算符,说明:关系运算符两侧可以是数值表达式、字符型表达式或日期型表达式,也可以是作为表达式特例的常量、变量或函数。但其两侧的数据类型必须完全一致。关系运算符的运算级别相同。,2.关系表达式关系表达式是指用关系运算符将两个表达式连接起来的式子(例如2*32+3),关系表达式的格式为:表达式1关系运算符表达式2说明:关系表达式的运算次序为:先分别求出关系运算符两侧表达式的值,然后再把二者进行比较,二者的关系若与关系运算符指示的一样,则关系运算的结果为真True,否则为假False。数值型数据按其数值大小进行比较。日期型数据将日期看成“yyyymmdd”的8位整数,按数值大小比较。,字符型数据按其ASCII码值进行比较。在比较两个字符串时,首先比较两个字符串的第一个字符,其中ASCII码值较大的字符所在的字符串大。如果第一个字符相同,则比较第二个,依此类推。常见字符值的大小如下:空格09AZaz任何汉字不要对单精度数或双精度数进行等于“=”比较,例如:1.0/3.0*3.0=1.0在数学上该表达式为恒等式。但由于计算机运算时的浮点误差,将造成不相等。数学不等式2x3,在VB中不能写成2=x=3。,5.1.2布尔运算符与布尔表达式布尔表达式是指用布尔运算符连接若干关系表达式或布尔值而组成的式子。如不等式2x3可以表示为21+4AndNot65AndNot6=0。两者是逻辑与And的关系,用And连接上面的两个式子,结果为:a0Andb24*a*c=0设变量y表示年份,被某个数整除,可以用数值运算符Mod或Int()函数来实现。能被4整除,但不能被100整除的表达式为yMod4=0AndyMod1000;能被400整除的表达式为yMod400=0。两者取“或”,即可得出判断闰年的布尔表达式:(yMod4=0AndyMod1000)Or(yMod400=0)用Int()函数表示为:(Int(y/4)=y/4AndInt(y/100)y/100)Or(Int(y/400)=y/400),5.2单条件选择语句If5.2.1单行结构条件语句IfThenElse单行条件语句比较简单,其语法格式为:If条件Then语句1Else语句2说明:条件可以是关系表达式、布尔表达式或数值表达式。如果以数值表达式作条件,则非0值为真,0为假。如果没有Else子句,语句1为必要参数,在条件为True时执行。【例5-3】【例5-4】,5.2.2使用IIf函数IIf函数的语法结构为:IIf(条件表达式,真部分,假部分)说明:条件表达式可以是关系表达式、布尔表达式、数值表达式。如果用数值表达式作条件,则非0为真,0为假。真部分是当条件表达式为真时函数返回的值,可以是任何表达式。假部分是当条件表达式为假时函数返回的值,可以是任何表达式。语句y=IIf(条件表达式,真部分,假部分)相当于:If条件表达式theny=真部分Elsey=假部分执行IIf函数时,先分别计算真部分和假部分的值,然后根据条件输出结果。例如,y=IIf(x=0,Sqr(Abs(x),x),5.2.3块结构条件语句IfThenElseEndIf块If语句又称为多行If语句,其语法结构为:If条件Then语句组1Else语句组2EndIf说明:在块形式中,If语句必须是第一行语句。If块必须以一个EndIf语句结束。当程序运行到If块时,首先测试条件。如果条件为True,则执行Then之后的语句组1。如果条件为False,并且有Else子句,则程序会执行Else部分的语句组2。而在执行完Then或Else之后的语句列后,会从EndIf之后的语句继续执行。Else子句是可选的。,【例5-5】将例5-3中命令按钮Command1的单击(Click)事件代码改为多行If语句:PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx=0Theny=Sqr(x)Elsey=-xEndIfText2.Text=yText2.Locked=TrueEndSub,【例5-6】将例5-4中命令按钮Command1的单击(Click)事件代码改为多行If语句:PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)y=Val(Text2.Text)IfxyThenLabel3.Caption=较大数为&Str(y)ElseLabel3.Caption=较大数为&Str(x)EndIfEndSub,5.2.4If语句的嵌套1.If语句的嵌套If语句的嵌套是指If或Else后面的语句块中又包含If语句。语句形式如下:If条件1ThenIf条件2ThenEndIfEndIf【例5-7】【例5-8】,2.If语句的嵌套格式ElseIfElseIf的块If语句语法结构为:If条件1Then语句组1ElseIf条件2Then语句组2.Else其他语句组EndIf,说明:(1)在If块中,Else和ElseIf子句都是可选的。可以放置任意多个ElseIf子句,但是都必须在Else子句之前。(2)当程序运行到If块时,将测试条件1。如果条件为True,则执行Then之后的语句。如果条件为False,则每个ElseIf部分的条件式(如果有的话)会依次计算并加以测试。如果找到某个为True的条件时,则其紧接在相关的Then之后的语句组会被执行。如果没有一个ElseIf条件为True(或是根本就没有ElseIf子句),则程序会执行Else部分的其他语句组。而在执行完Then或Else之后的语句组后,会从EndIf之后的语句继续执行。【例5-9】在例5-8中使用带ElseIf的块If语句来计算出优惠价,只需将其中命令按钮Command1的单击(Click)事件代码改为:,PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx1000Theny=x不打折ElseIfx2000Theny=0.95*x九五折ElseIfx3000Theny=0.9*x九折ElseIfx5000Theny=0.85*x八五折Elsey=0.8*x八折EndIfText2.Text=yText2.Locked=TrueEndSub【例5-10】,5.3多分支选择语句SelectCaseSelectCase语句的语法格式为:SelectCase测试条件Case表达式表1语句组1Case表达式表2语句组2.CaseElse其他语句组EndSelect,说明:(1)测试条件为必选参数,是任何数值表达式或字符串表达式。(2)在Case子句中,表达式表用来测试其中是否有值与测试条件相匹配。Case子句中的表达式表是一个或多个表5-5所示形式的表达式列表。表5-5表达式的形式,当使用多个表达式的列表时,表达式与表达式之间要用逗号“,”隔开。(3)语句组为可选参数,是一条或多条语句,当表达式表中有值与测试条件相匹配时执行。(4)CaseElse子句用于指明其他语句列,当测试条件和所有的Case子句表达式表中的值都不匹配时,则会执行这些语句。虽然不是必要的,但是在SelectCase区块中,最好还是加上CaseElse语句来处理不可预见的测试条件值。如果没有Case值匹配测试条件,而且也没有CaseElse语句,则程序会从EndSelect之后的语句继续执行。【例5-11】在例5-8中使用SelectCase语句来计算优惠价,只需将其中命令按钮Command1的单击(Click)事件代码改为:,PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)SelectCasexCaseIs1000y=xCaseIs2000y=0.95*xCaseIs3000y=0.9*xCaseIs5000y=0.85*xCaseElsey=0.8*xEndSelectText2.Text=yText2.Locked=TrueEndSub在Case子句中使用多个表达式时,所列表达式的形式可以不相同,既可以使用值,又可以使用条件或范围,还可以混合使用。,【例5-12】将例5-10用Select语句编制命令按钮代码。PrivateSubCommand1_Click()StaticiAsInteger声明静态变量i为整型数i=i+1Mytext1=床前明月光,Mytext2=Mytext1+Chr(13)+疑是地上霜。Mytext3=Mytext2+Chr(13)+举头望明月,Mytext4=Mytext3+Chr(13)+低头思故乡。SelectCaseiCase1Label2.Caption=Mytext1Case2Label2.Caption=Mytext2Case3Label2.Caption=Mytext3Case4Label2.Caption=Mytext4i=0EndSelectEndSub,【例5-13】5.5单选钮和复选框控件5.5.1单选钮控件1.单选钮的主要属性单选钮的主要属性,见表5-8。,5.4计时器控件计时器控件的主要属性见表5-6。表5-6Timer控件的属性,表5-8单选钮的主要属性,说明:如果想使某个按钮成为单选按钮组中的缺省按钮,则在设计时将其Value属性设置成True。它将保持被选中状态,直到用户选择另一个不同的单选钮或用代码改变它。如果想禁用某单选钮,可将其Enabled属性设置为False。程序运行时,若此单选钮显示模糊,表示无法选取该单选钮。,2.选择单选钮的方法选择一个单选钮可以用以下方法:l在运行期间用鼠标单击单选钮。l用Tab键定位到单选按钮组,然后在组内使用方向键(箭头键)定位单选钮。l用代码将它的Value属性设置为真:Option1.Value=Truel使用在OptionButton标题中指定的快捷键。3.使用单选按钮组单选钮和复选框都可以接受Click事件,但一般不需要编写Click事件过程。因为当用户单击单选钮和复选框时,它们自动改变状态。单选钮的一个特点是当选定其中一个,其余就自动关闭。但当需要在同一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上半年合肥滨湖投资控股集团有限公司招聘14人考前自测高频考点模拟试题及答案详解(名师系列)
- 国家能源集团2025秋招发布网站//笔试历年参考题库附带答案详解
- 2025年晋江市林业和园林绿化局公开招聘1人考前自测高频考点模拟试题及答案详解参考
- 2025贵州雍福产业发展投资(集团)有限公司第一批招聘5人模拟试卷及完整答案详解一套
- 2025贵州遵义教育发展集团实训服务有限公司招聘总环节人员及笔试历年参考题库附带答案详解
- 2025福建闽侯大禹水利建设投资有限公司公开招聘25名工作人员笔试历年参考题库附带答案详解
- 2025福建福州建工福厝置地有限责任公司第二批招聘1人笔试历年参考题库附带答案详解
- 2025福建省水利投资集团(长汀)水务有限公司招聘3人笔试历年参考题库附带答案详解
- 2025甘肃兰州顺丰速运有限公司招聘40人笔试历年参考题库附带答案详解
- 2025湖北荆州市兴质市政园林有限公司招聘笔试历年参考题库附带答案详解
- 2025年全国保密教育线上培训知识考试试题库有含答案
- 2025年上海科学考试题目及答案
- 试点先行人工智能+智能客服系统可行性分析
- 兵团面试题目及答案
- 2025-2030中国基建投资拉动下工程机械需求预测与市场分析
- 胰岛素泵专家共识课件
- 电梯自行检测合规指南
- 人教版(2024)八年级上册数学全册教案
- 2025年住院医师规培-新疆-新疆住院医师规培(胸心外科)历年参考题库典型考点含答案解析
- 通过模拟实验探究膜的透性 说课课件
- GB/T 29163-2012煤矸石利用技术导则
评论
0/150
提交评论