版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章选择结构设计
程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。在一个过程中,程序通常是按照由上而下的顺序来执行各个语句的,直到整个过程结束。引入选择结构和循环结构,可以改变程序执行的流程。本章主要内容
选择程序结构用于判断给定的条件,根据判断的结果来控制程序的流程
条件表达式
关系表达式/
逻辑表达式条件语句
If...Then/If...Then...Else
条件语句的嵌套多分支语句selectcase
选择性控件
单选按钮/
复选框列表框/组合框计时器控件程序举例关系运算符符号:
<小于>大于>=大于或等于
<=小于或等于=等于<>不等于
适用的类型和结果类型:
关系运算符适用于数值型、字符型、日期型和逻辑型数据,结果只能为逻辑型(真值True和假值False)运算符两侧必须是同类型的量或表达式若不是,系统会自动进行强制类型转换“5”>40>(1>0)若判断的结论是成立,则结果为逻辑真值(True),否则为逻辑假值(False)True的值等于-1,False的值等于0关系运算符运算符名称示例说明<小于“3”<4值为:True,强制转换为数值型<=小于或等于3<=4值为:True>大于0>(1>0)值为:True,强制转换为数值型>=大于或等于“aa”>=“ab”值为:False=等于1=True值为:False,强制转换为数值型<>不等于1<>1值为:False关系表达式运算次序:先分别求出运算符两侧表达式的值,然后再将二者进行比较其中:数值型数据按照数值大小比较
2+3>63>=05<>2^3
字符型数据按照字符的ASCII码值大小比较
“1”>“2”“a”<“b”“A”>“a”
日期型数据按照前后顺序比较
#01/01/2003#>#12/31/2002#
关系表达式的格式:<表达式1><关系运算符><表达式2>[<关系运算符><表达式3>…]关系表达式练习数值型数据按照数值大小比较字符型数据按照字符的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金手指考试网/2016年金手指驾驶员考试科目一科目四
元贝驾考网
科目一科目四仿真考试题C1Grammar布尔运算符符号:
NOT
(逻辑非)
AND
(逻辑与)即:并且,要同时成立
OR
(逻辑或)即:或者,只要有一个成立适用的类型和结果类型:
只适用于逻辑型数据,运算结果是逻辑值规则:非运算的规则是:直接求反即可与运算的规则是:只有二者全为真时结果为真,否则为假或运算的规则是:只有二者全为假时结果为假,否则为真逻辑值A逻辑值BNOTAAANDBAORBTTFTTTFFFTFTTFTFFTFF布尔表达式练习?“a”>“b”AND1>2False?“a”>“b”OR1<2
True?NOT2*5<>11
False?2^3>3AND5>10
False表示一个数是偶数
xMod2=0或int(x/2)=x/2表示一个数X能被3或5或7整除
xMod3=0ORxMod5=0ORxMod7=0表示身高不在1.65米以上或不是女生
身高<1.65
OR性别<>“女”
NOT(身高>=1.65
AND性别=“女”)布尔表达式练习?-3<-2<-1Falsea=3:b=4:c=5?a=b=c
False表示一个数x是能被3整除的奇数
xMod3=0andxMod2<>0xMod2=1andxMod2<>0表示一个数x∈[2,5]
x>=2andx<=5表示一个数x不在[2,5]区间内
x<2orx>5运算符的优先顺序算术运算符字符串运算符:&关系运算符:=、<>、<、>、<=、>=布尔运算符:NotAndOr优先级依次降低运算符的优先顺序练习设变量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判断闰年的科学依据地球公转一周的时间为: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年,闰年停止出现一次选择控制结构选择控制结构又称分支结构它体现了程序运行过程中的自我判断能力程序可以根据当前执行的某个条件,进行比较、判断,并依据判断的结果(成立与否)来决定下一步做什么,不做什么(在两条或多条程序路径中选择一条来执行,即只执行程序中的一部分语句)可见,在此结构的程序运行过程中,有些语句会执行一次,有些语句在此次程序运行过程中没有机会执行。即:“无论分支多寡,必选其一;纵然分支众多,仅选其一”VB中的选择语句有:双分支语句多分支语句(SelectCase)单行(IF-THEN-ELSE)块结构(IF-THEN-ELSE-ENDIF)选择结构(IF-THEN)语句格式:IF<条件>
THEN<语句序列>条件N语句序列下一语句Y执行过程:判断给定的条件如果成立(其值为True),执行所给语句序列,然后执行下一条语句否则(其值为False),跳过所给语句序列,直接执行下一条语句示例:输入一个数,如果是正数,就输出x=Val(Text1.text)Ifx>0ThenLabel1.Caption=x问题:如果不是正数,应该显示“不是正数”语句格式:IF<条件>THEN[<语句序列1>][ELSE<语句序列2>]执行过程:判断给定的条件如果成立(其值为True),执行所给语句序列1,然后执行下一条语句否则(其值为False),执行所给语句序列2,然后执行下一条语句选择结构(IF-THEN-ELSE)条件命令序列1命令序列2下一语句NY(IF-THEN-ELSE)举例例二:根据用户输入的一个成绩,判断是否及格DimxAsSingleX=Val(InputBox("请输入一个成绩:","输入",0))IF
X>=60
THENLabel1.Caption=“及格”
ElseLabel1.Caption=“不及格”使用IIF函数,也可以实现相应的判断格式:IIF(条件,条件为真时的值,条件为假时的值)
例一:输入一个数,如果是正数,就输出;否则显示非正数DimxAsSinglex=Val(Text1.text)If
x>0
Then
Label1.Caption=x
Else
Label1.Caption=“非正数"IIF函数的使用DimxAsSinglex=Val(Text1.text)If
x>0
Then
Label1.Caption=x
Else
Label1.Caption=“非正数”Label1.Caption=IIf(x>0,x,“非正数”)DimxAsSingleX=Val(InputBox("请输入一个成绩:","输入",0))IF
X>=60
THEN
Label1.Caption=“及格”
Else
Label1.Caption=“不及格”Label1.Caption=IIf(x>=60,“及格”,“不及格”)语句格式:IF<条件>THEN
[<语句列1>][ELSE<语句列2>]ENDIF执行过程:判断给定的条件如果成立(其值为True),执行所给y语句序列1,然后执行下一条语句否则(其值为False),执行所给语句序列2,然后执行下一条语句块结构(IF-THEN-ELSE-ENDIF)条件命令序列1命令序列2下一语句NY(IF-THEN-ELSE-ENDIF)举例示例:根据用户输入的一个成绩,判断是否及格DimxAsSinglex=Val(InputBox("请输入一个成绩:","输入",0))Ifx>=60ThenLabel1.Caption="及格"ElseLabel1.Caption="不及格"EndIf(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语句格式:IF<条件1>THEN
[<语句列1>]ELSE
IF<条件2>THEN
[<语句列2>]ELSE[<语句列3>]ENDIFENDIF说明:如果在If语句的语句列1或语句列2中又有一个完整的If语句,则称为If语句的嵌套IF语句的嵌套条件1语句列1语句列2下一语句NY条件2YN语句列3嵌套IF举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数X>0是个正数是零下一语句X=0YN是个负数YNDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"Else
If
x=0
ThenLabel1.Caption=“零”
ElseLabel1.Caption="负数"
EndIfEndIf嵌套IF举例用户输入一元二次方程的系数,用户判断解的情况△>0有两个不相同的实根有两个相同的实根下一语句△=0YN没有实数解YNa=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=b^2-4*a*cIf
d>0
ThenLabel1.Caption=“不同实根"Else
If
d=0
Then
Label1.Caption=“相同实根
"Else
Label1.Caption="没有实数解"
EndIfEndIf嵌套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语句格式:IF<条件1>THEN
[<语句列1>]ELSEIF<条件2>THEN<语句列2>]……[ELSE[其他语句列]]ENDIF说明:IF语句的嵌套格式ELSEIF条件1条件n语句列1语句列n其他语句列下一语句…YYNN嵌套ELSEIF举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIf
x=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfDimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIf
x=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfEndIf嵌套ELSEIF举例DimxAsSinglex=Val(Text1.Text)Ifx>100ThenLabel1.Caption="输入有误!"ElseIfx>=90ThenLabel1.Caption="优秀!"
ElseIfx>=80ThenLabel1.Caption="良好!"ElseIf
x>=70ThenLabel1.Caption="一般!"ElseIf
x>=60ThenLabel1.Caption="及格!"ElseIf
x>=0ThenLabel1.Caption="不及格!"
ElseLabel1.Caption="输入有误!"EndIf用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误多分支语句
当判断条件较多时,如果采用IF语句来设计程序,会出现各方面的麻烦;而多分支语句可以利用格式中的多个条件来判断与执行,效率较高语句格式:SELECTCASE<测试条件>[CASE<表达式1>
[<语句列1>]][CASE<表达式2>
[<语句列2>]]
…[CASEElSE[<其他语句列>]]ENDSELECT说明:
P83条件1条件n语句列1语句列n其他语句列下一语句…YYNN多分支语句举例用户输入一个数,如果是正数,打印是个正数;如果是0,打印是个零;如果是负数,打印是负数DimxAsSinglex=Val(Text1.Text)Ifx>0ThenLabel1.Caption="正数"ElseIf
x=0ThenLabel1.Caption="零"ElseLabel1.Caption="负数"EndIfEndIfDimxAsSinglex=Val(Text1.Text)SelectCasexCaseIs>0Label1.Caption="正数"CaseIs=0’Case0Label1.Caption="零"CaseIs<0Label1.Caption="负数"EndSelect多分支语句举例用户输入一个成绩,若在90到100之间,打印优秀;若在80到89之间,打印良好;若在70到79之间,打印一般;若在60到69之间,打印及格;若在60以下,打印不及格;其它情况,打印输入有误SelectCasex
CaseIs<0Label1.Caption="输入有误"
CaseIs>100Label1.Caption="输入有误"CaseIs>=90Label1.Caption="优秀"
CaseIs>=80Label1.Caption="良好"
CaseIs>=70Label1.Caption="一般"CaseIs>=60Label1.Caption="及格"
CaseElseLabel1.Caption="不及格"EndSelect多分支语句举例用户输入一个年份和月份,由程序输入该年该月有多少天!DimdAsIntegery=Val(Text1.Text):m=Val(Text2.Text)SelectCasemCase1,3,5,7,8,10,12d=31Case4,6,9,11d=30Case2IfyMod4=0AndyMod100<>0OryMod400=0Thend=29
Elsed=28
EndIfEndSelectP=Str(y)&"年"&Str(m)&"月有"&Str(d)&"天!"Label1.Caption=p滚动条有些控件不能自动支持滚动的功能,VB提供的滚动条有水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种常用属性有(均为整型数):Value滚动条的当前值,即滑块的位置LargeChange单击滚动条的前后部位时,Value的改变量SmallChange单击滚动条的两端箭头时,Value的改变量MaxValue的最大值MinValue的最小值常用事件:Scroll当拖动滚动条滑块时触发的事件Change当滚动条滑块位置改变时触发的事件滚动条程序示例PrivateSubHScroll1_Scroll()Text1.FontSize=HScroll1.ValueEndSub若改为滚动条的Change事件,效果会有什么变化?使用计时器控件计时器(Timer)控件可以在程序运行中以规定的时间间隔产生一个事件。这对不需要与用户交互的代码的执行非常有用。计时器在设计时显示为一个小时钟图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《种潮流设计风格》课件
- 《上海美食文化》课件
- 《医院统计》课件
- 《因特网上的资源》课件
- “皖南八校”2025届高三第二次大联考 政治试卷(含答案解析)
- 《市场营销演讲》课件
- 苏教版小学数学二年级上册时分的认识课件
- 商业选铺培训课件
- 一年级科学教科版课件《观察一种动物》
- 五年级下册道德与法治部编版课件建立良好的公共秩序
- 02565+24273中医药学概论
- 2023年中央纪委国家监委机关直属单位招聘工作人员考试真题
- 2024-2025学年度教科版初中物理八年级上册期末模拟卷(含答案)
- 《旅游概论》考试复习题库(附答案)
- 1000亩水产养殖建设项目可行性研究报告
- 量子计算与区块链
- 微电子器件期末复习题含答案
- 广东珠海市驾车冲撞行人案件安全防范专题培训
- 2022版ISO27001信息安全管理体系基础培训课件
- 中国法律史-第二次平时作业-国开-参考资料
- (高清版)JTGT D81-2017 公路交通安全设施设计细则
评论
0/150
提交评论