




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序流程有三种最基本的控制结构即顺序结构选择结构和演示文稿现在是1页\一共有41页\编辑于星期五
选择程序结构用于判断给定的条件,根据判断的结果来控制程序的流程
本章主要内容条件表达式
关系表达式/逻辑表达式条件语句
If...Then/If...Then...Else
条件语句的嵌套多分支语句selectcase
选择性控件
单选按钮/复选框列表框/组合框计时器控件程序举例现在是2页\一共有41页\编辑于星期五关系运算符符号:
<小于>大于>=大于或等于
<=小于或等于=等于<>不等于适用的类型和结果类型:关系运算符适用于数值型、字符型、日期型和逻辑型数据,结果只能为逻辑型(真值True和假值False)运算符两侧必须是同类型的量或表达式若不是,系统会自动进行强制类型转换“5”>40>(1>0)若判断的结论是成立,则结果为逻辑真值(True),否则为逻辑假值(False)True的值等于-1,False的值等于0现在是3页\一共有41页\编辑于星期五关系运算符运算符名称示例说明<小于“3”<4值为:True,强制转换为数值型<=小于或等于3<=4值为:True>大于0>(1>0)值为:True,强制转换为数值型>=大于或等于“aa”>=“ab”值为:False=等于1=True值为:False,强制转换为数值型<>不等于1<>1值为:False现在是4页\一共有41页\编辑于星期五关系表达式运算次序:先分别求出运算符两侧表达式的值,然后再将二者进行比较其中:数值型数据按照数值大小比较
2+3>63>=05<>2^3
字符型数据按照字符的ASCII码值大小比较“1”>“2”“a”<“b”“A”>“a”
日期型数据按照前后顺序比较
#01/01/2003#>#12/31/2002#
关系表达式的格式:<表达式1><关系运算符><表达式2>[<关系运算符><表达式3>…]现在是5页\一共有41页\编辑于星期五关系表达式练习数值型数据按照数值大小比较字符型数据按照字符的ASCII码值大小比较日期型数据按照前后顺序比较①?2/3>3/4②?“a”>“b”③?3<=5④?True=-1⑤?#01/12/91#<=#02/01/91#?“abc”<=“abb”?“ab”<=“我们”?“123”>“99”?“你们”>“我们”①False②False③True④True⑤True⑥False⑦True⑧False⑨False现在是6页\一共有41页\编辑于星期五布尔运算符符号:
NOT
(逻辑非)
AND
(逻辑与)即:并且,要同时成立
OR
(逻辑或)即:或者,只要有一个成立适用的类型和结果类型:
只适用于逻辑型数据,运算结果是逻辑值规则:非运算的规则是:直接求反即可与运算的规则是:只有二者全为真时结果为真,否则为假或运算的规则是:只有二者全为假时结果为假,否则为真逻辑值A逻辑值BNOTAAANDBAORBTTFTTTFFFTFTTFTFFTFF现在是7页\一共有41页\编辑于星期五布尔表达式练习?“a”>“b”AND1>2False?“a”>“b”OR1<2True?NOT2*5<>11False?2^3>3AND5>10False表示一个数是偶数
xMod2=0或int(x/2)=x/2表示一个数X能被3或5或7整除
xMod3=0ORxMod5=0ORxMod7=0表示身高不在1.65米以上或不是女生身高<1.65
OR性别<>“女”
NOT(身高>=1.65
AND性别=“女”)现在是8页\一共有41页\编辑于星期五布尔表达式练习?-3<-2<-1Falsea=3:b=4:c=5?a=b=cFalse表示一个数x是能被3整除的奇数
xMod3=0andxMod2<>0xMod2=1andxMod2<>0表示一个数x∈[2,5]x>=2andx<=5表示一个数x不在[2,5]区间内
x<2orx>5现在是9页\一共有41页\编辑于星期五运算符的优先顺序算术运算符字符串运算符:&关系运算符:=、<>、<、>、<=、>=布尔运算符:NotAndOr优先级依次降低现在是10页\一共有41页\编辑于星期五运算符的优先顺序练习设变量x=4,y=-1,a=7.5,b=-6.2,求表达式
x+y>a+bAndNoty<b的值
Truey表示年号,用一个表达式表示该年是否是闰年
(yMod4=0ANDyMod100<>0)OR(yMod400=0ANDyMod100=0)(yMod4=0ANDyMod100<>0)ORyMod400=0现在是11页\一共有41页\编辑于星期五判断闰年的科学依据地球公转一周的时间为:365天5小时48分56秒每经过4年,剩余的时间为:5小时48分56秒×4=23小时15分44秒则每4年都要多加24小时-23小时15分44秒=44分16秒每经过100年,就会多加44分16秒×25=18小时26分40秒比较接近一天,所以每到100年,就将这多加的近似一天的时间减去,即停止追加一天而实际上又少加了24小时-18小时26分40秒=5小时33分20秒每经过400年,就会少加4×5小时33分20秒≈24小时所以每过400年,就应该再补加一天故:每4年闰年出现一次;每400年,闰年再出现一次其它的整100年,闰年停止出现一次现在是12页\一共有41页\编辑于星期五选择控制结构选择控制结构又称分支结构它体现了程序运行过程中的自我判断能力程序可以根据当前执行的某个条件,进行比较、判断,并依据判断的结果(成立与否)来决定下一步做什么,不做什么(在两条或多条程序路径中选择一条来执行,即只执行程序中的一部分语句)可见,在此结构的程序运行过程中,有些语句会执行一次,有些语句在此次程序运行过程中没有机会执行。即:“无论分支多寡,必选其一;纵然分支众多,仅选其一”VB中的选择语句有:双分支语句多分支语句(SelectCase)单行(IF-THEN-ELSE)块结构(IF-THEN-ELSE-ENDIF)现在是13页\一共有41页\编辑于星期五选择结构(IF-THEN)语句格式:IF<条件>
THEN<语句序列>条件N语句序列下一语句Y执行过程:判断给定的条件如果成立(其值为True),执行所给语句序列,然后执行下一条语句否则(其值为False),跳过所给语句序列,直接执行下一条语句示例:输入一个数,如果是正数,就输出x=Val(Text1.text)Ifx>0ThenLabel1.Caption=x问题:如果不是正数,应该显示“不是正数”现在是14页\一共有41页\编辑于星期五语句格式:IF<条件>THEN[<语句序列1>][ELSE<语句序列2>]执行过程:判断给定的条件如果成立(其值为True),执行所给语句序列1,然后执行下一条语句否则(其值为False),执行所给语句序列2,然后执行下一条语句选择结构(IF-THEN-ELSE)条件命令序列1命令序列2下一语句NY现在是15页\一共有41页\编辑于星期五(IF-THEN-ELSE)举例例二:根据用户输入的一个成绩,判断是否及格DimxAsSingleX=Val(InputBox("请输入一个成绩:","输入",0))IFX>=60THENLabel1.Caption=“及格”
ElseLabel1.Caption=“不及格”使用IIF函数,也可以实现相应的判断格式:IIF(条件,条件为真时的值,条件为假时的值)
例一:输入一个数,如果是正数,就输出;否则显示非正数DimxAsSinglex=Val(Text1.text)Ifx>0ThenLabel1.Caption=xElseLabel1.Caption=“非正数"现在是16页\一共有41页\编辑于星期五IIF函数的使用DimxAsSinglex=Val(Text1.text)Ifx>0ThenLabel1.Caption=xElseLabel1.Caption=“非正数”Label1.Caption=IIf(x>0,x,“非正数”)DimxAsSingleX=Val(InputBox("请输入一个成绩:","输入",0))IFX>=60THENLabel1.Caption=“及格”
ElseLabel1.Caption=“不及格”Label1.Caption=IIf(x>=60,“及格”,“不及格”)现在是17页\一共有41页\编辑于星期五语句格式:IF<条件>THEN
[<语句列1>][ELSE<语句列2>]ENDIF执行过程:判断给定的条件如果成立(其值为True),执行所给y语句序列1,然后执行下一条语句否则(其值为False),执行所给语句序列2,然后执行下一条语句块结构(IF-THEN-ELSE-ENDIF)条件命令序列1命令序列2下一语句NY现在是18页\一共有41页\编辑于星期五(IF-THEN-ELSE-ENDIF)举例示例:根据用户输入的一个成绩,判断是否及格DimxAsSinglex=Val(InputBox("请输入一个成绩:","输入",0))Ifx>=60ThenLabel1.Caption="及格"ElseLabel1.Caption="不及格"EndIf现在是19页\一共有41页\编辑于星期五(IF-THEN-ELSE-ENDIF)举例示例:输入ABC的值,判断能否构成三角形,如果能,计算三角形的面积DimaAsSingle,bAsSingle,cAsSinglea=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)s=(a+b+c)/2Ifa+b>cAndc>0Anda+c>bAndb>0Andb+c>aAnda>0Thenarea=Sqr(s*(s-a)*(s-b)*(s-c))Label1.Caption="能构成三角形,"&"三角形面积为:"&Str(area)ElseLabel1.Caption="不能构成三角形"EndIf现在是20页\一共有41页\编辑于星期五语句格式:IF<条件1>THEN
[<语句列1>]ELSEIF<条件2>THEN
[<语句列2>]ELSE[<语句列3>]ENDIFENDIF说明:如果在If语句的语句列1或语句列2中又有一个完整的If语句,则称为If语句的嵌套IF语句的嵌套条件1语句列1语句列2下一语句NY条件2YN语句列3现在是21页\一共有41页\编辑于星期五嵌套IF举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数X>0是个正数是零下一语句X=0YN是个负数YNDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption=“零”
ElseLabel1.Caption="负数"EndIfEndIf现在是22页\一共有41页\编辑于星期五嵌套IF举例用户输入一元二次方程的系数,用户判断解的情况△>0有两个不相同的实根有两个相同的实根下一语句△=0YN没有实数解YNa=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=b^2-4*a*cIfd>0ThenLabel1.Caption=“不同实根"ElseIfd=0Then
Label1.Caption=“相同实根
"Else
Label1.Caption="没有实数解"EndIfEndIf现在是23页\一共有41页\编辑于星期五嵌套IF举例用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="输入有误!"ElseIfx>=90ThenLabel1.Caption="优秀!"ElseIfx>=80ThenLabel1.Caption="良好!"ElseIfx>=70ThenLabel1.Caption="一般!"ElseIfx>=60ThenLabel1.Caption="及格!"ElseIfx>=0ThenLabel1.Caption="不及格!"ElseLabel1.Caption="输入有误!"EndIfEndIfEndIfEndIfEndIfEndIf现在是24页\一共有41页\编辑于星期五语句格式:IF<条件1>THEN
[<语句列1>]ELSEIF<条件2>THEN<语句列2>]……[ELSE[其他语句列]]ENDIF说明:IF语句的嵌套格式ELSEIF条件1条件n语句列1语句列n其他语句列下一语句…YYNN现在是25页\一共有41页\编辑于星期五嵌套ELSEIF举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfEndIf现在是26页\一共有41页\编辑于星期五嵌套ELSEIF举例DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="输入有误!"ElseIfx>=90ThenLabel1.Caption="优秀!"ElseIfx>=80ThenLabel1.Caption="良好!"ElseIfx>=70ThenLabel1.Caption="一般!"ElseIfx>=60ThenLabel1.Caption="及格!"ElseIfx>=0ThenLabel1.Caption="不及格!"ElseLabel1.Caption="输入有误!"EndIf用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误现在是27页\一共有41页\编辑于星期五多分支语句
当判断条件较多时,如果采用IF语句来设计程序,会出现各方面的麻烦;而多分支语句可以利用格式中的多个条件来判断与执行,效率较高语句格式:SELECTCASE<测试条件>[CASE<表达式1>
[<语句列1>]][CASE<表达式2>
[<语句列2>]]
…[CASEElSE[<其他语句列>]]ENDSELECT说明:
P83条件1条件n语句列1语句列n其他语句列下一语句…YYNN现在是28页\一共有41页\编辑于星期五多分支语句举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIfx=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfEndIfDimxAsSinglex=Val(Text1.Text)SelectCasexCaseIs>0Label1.Caption="正数"CaseIs=0’Case0Label1.Caption="零"CaseIs<0Label1.Caption="负数"EndSelect现在是29页\一共有41页\编辑于星期五多分支语句举例用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误SelectCasexCaseIs<0Label1.Caption="输入有误"CaseIs>100Label1.Caption="输入有误"CaseIs>=90Label1.Caption="优秀"CaseIs>=80Label1.Caption="良好"CaseIs>=70Label1.Caption="一般"CaseIs>=60Label1.Caption="及格"CaseElseLabel1.Caption="不及格"EndSelect现在是30页\一共有41页\编辑于星期五多分支语句举例用户输入一个年份和月份,由程序输入该年该月有多少天!DimdAsIntegery=Val(Text1.Text):m=Val(Text2.Text)SelectCasemCase1,3,5,7,8,10,12d=31Case4,6,9,11d=30Case2IfyMod4=0AndyMod100<>0OryMod400=0Thend=29Elsed=28EndIfEndSelectP=Str(y)&"年"&Str(m)&"月有"&Str(d)&"天!"Label1.Caption=p现在是31页\一共有41页\编辑于星期五滚动条有些控件不能自动支持滚动的功能,VB提供的滚动条有水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种常用属性有(均为整型数):Value滚动条的当前值,即滑块的位置LargeChange单击滚动条的前后部位时,Value的改变量SmallChange单击滚动条的两端箭头时,Value的改变量MaxValue的最大值MinValue的最小值常用事件:Scroll当拖动滚动条滑块时触发的事件Change当滚动条滑块位置改变时触发的事件现在是32页\一共有41页\编辑于星期五滚动条程序示例PrivateSubHScroll1_Scroll()Text1.FontSize=HScroll1.ValueEndSub若改为滚动条的Change事件,效果会有什么变化?现在是33页\一共有41页\编辑于星期五使用计时器控件计时器(Timer)控件可以在程序运行中以规定的时间间隔产生一个事件。这对不需要与用户交互的代码的执行非常有用。计时器在设计时显示为一个小时钟图标,而在运行时则看不到,常用来做一些后台处理。如果需要显示时间,则应当使用标签或文本框现在是34页\一共有41页\编辑于星期五计时器控件的常用属性Interval属性是决定Timer控件的计时事件调用间隔的毫秒数格式:[对象.]Interval[=毫秒数]说明:当毫秒数为0(缺省)时,Timer控件无效。Enabled属性(True/False)决定Interval的设置是否有效只要Timer控件的Enabled属性被设置为True,而且Interval属性>0,则以Interval属性指定的时间间隔发生一次Timer事件现在是35页\一共有41页\编辑于星期五设计一个闪烁字幕PrivateSubForm_Load()FontName="幼圆"FontBold=TrueFontSize=100EndSubPrivateSubTimer1_Timer()Form1.ForeColor=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))Form1.CurrentX=Form1.Width/10’输出的水平坐标Form1.CurrentY=Form1.Height/16’输出的垂直坐标Print"闪烁字幕"EndSub每隔0.5秒闪烁一次,程序运行前,Timer的Enabled和Interval属性的值应为多少?现在是36页\一共有41页\编辑于星期五设计一个计时器每隔一秒钟,文本框中的数字增一,单击“暂停”按钮就停止PrivateSubCommand1_Click()Timer1.Enabled=TrueEndSubPrivateSubCommand2_Click()Timer1.Enabled=FalseEndSubPrivate
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创业融资租赁合同范本
- 公路护栏修建合同范本
- 个人用电协议合同范例
- 公司运输购销合同范本
- 刻字木材出售合同范本
- 个人旅游陪玩合同范本
- 个人住家保姆合同范本
- 劳务代理加盟合同范例
- fidic银皮书合同范例
- 出售电厂烧火料合同范本
- 2025年买卖双方合同模板
- 最专业的企业介绍模板课件
- 异位妊娠护理查房版本
- 人教版 八年级数学下册 第19章 单元综合测试卷(2025年春)
- 2025年湖南中医药高等专科学校高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年山东司法警官职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年美发师(高级技师)职业鉴定考试题库(含答案)
- 2025年山东药品食品职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年05月湖南招商银行长沙分行长期社会招考笔试历年参考题库附带答案详解
- 沪科版(2024新版)数学七年级下册第6章 实数 单元测试卷(含答案)
- 2025新人教版英语七年级下单词英译汉默写表(小学部分)
评论
0/150
提交评论