版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、引言,算法的三种结构:顺序、选择/分支、循环。理论已经证明,无论多么复杂的的问题,都可以用这三种结构的组合来表示。,第5章 选择分支与循环,5.1 分支结构与分支结构语句 5.2 循环结构与循环结构语句 5.3 程序示例,5.1 分支结构,5.1.1 If-Then-Else-End If结构语句 5.1.2 Select Case 语句(情况语句),5.1.1 IF结构语句,IfThen语句(单分支结构) If Then Else语句(双分支结构) If Then ElseIf语句(多分支结构) If 语句的嵌套,单分支结构条件语句,单行条件语句的格式如下: If 条件 ThenA组语句El
2、seB组语句,单行条件语句的功能是:如果“条件”为True,则执行“A组语句”,否则执行“B组语句”,a=5 If a Then Print “a为非零值”,a=5 If a0 Then Print “a为非零值”,双分支结构(If.Then语句),双分支If语句是用来判断条件成立与否,然后决定下一步怎么执行的一种控制语句,这种选择结构是最常用的双选择结构,即只有两种操作可以选择。如果条件为真,执行其中一个操作;如果条件为假,则执行另外一个操作。,双分支结构if语句语法格式如下: If Then Else End If,说明: 为必选项,它可以是关系表达式、逻辑表达式、数值表达式,但总的说来它
3、是一个逻辑值的表达式,其返回结果必须是True或False,如果不是则进行类型转换。 对于数值表达式,VB将0作为False,非0作为True来处理; 和可以是一条语句,也可以是多条语句,双分支If语句的执行过程是这样的:首先计算的值,如果结果为True,则执行, 否则,执行。,选择结构流程图,【例】设计界面如图所示,用文本框Text1输入x的值,单击按钮时,在标签text2中显示出x的绝对值。,运行界面,“求绝对值”按钮Command1的单击事件过程如下: Private Sub Command1_Click() x = Val(Text1.Text) 将文本框中的字符内容转换成数值 If
4、x 0 Then text2.text = x Else text2.text = -x 根据x的正负确定显示结果 End If End Sub,注意以下问题: (1)整个结构必须以If开始,以End If结束。 (2)双分支结构If 语句中Then后面的语句不能与其写在同一行上,否则,认为是一个单行结构的条件语句,这是双分支结构与单行结构条件语句的主要区别。,(3)块结构中的是可以省略的。省略后即简化为以下形式: If Then End If 当条件成立时,根据完成的一定的操作;而当条件不成立时不做任何处理,直接执行 End If 后面的语句。,前例也可以采用下列程序段来实现 Private
5、 Sub Command1_Click() x = Val(Text1.Text) If x 0 Then x = -x 取负数x的相反数 End If text2.text = x End Sub,(4)在双分支结构中,If后面显式的给出了判断条件,Else后面虽然没有显式的给出一个条件,但相当于存在一个与If部分相反的隐含条件。,例5-1已知三角形三个边的长度,设计求此三角形面积的程序。,问题分析:设三角形的三个边分别为a、b、c(a、b、c为正数),从数学上已知,当 a+bc 且 a+cb 且 b+ca 时,三角形存在,其面积 s = sqr(p*(p-a)*(p-b)*(p-c) 式中
6、: p = (a+b+c)/2,程序代码:,Private Sub Command1_Click() Dim a As Single, b As Single, c As Single, p As Single, s As Single a = Val(Text1.Text) 取数据a b = Val(Text2.Text) 取数据b c = Val(Text3.Text) 取数据c If a + b c And a + c b And b + c a Then p = (a + b + c) / 2 s = Sqr(p * (p - a) * (p - b) * (p - c) 求三角形面积
7、 Text4.Text = CStr(s) 面积数据写入计算结果文本框 Else Text4.Text = “数据错误” 数据错误信息 End If End Sub,Private Sub Command2_Click() End 结束程序 End Sub Private Sub Command3_Click() Text1.Text = 清除原有数据 Text2.Text = Text3.Text = Text4.Text = Text1.Setfocus 将Text1置为焦点 End Sub 程序实例,双分支结构If语句可以嵌套,即在IF语句中的和部分仍然可以包含另外一个双分支结构If语句
8、。如果在条件成立或不成立的情况下要继续判断其他条件,则可以在语句块的位置上再使用另外一个双分支结构条件语句。,双分支If语句的嵌套,If子句部分的嵌套结构,Else子句部分的嵌套结构,If then If then Else End If Else End IF,If then Else If then Else End If End IF,使用嵌套语句时应注意以下问题: (1)如果存在嵌套时,语句中的每一个Else必须和一个If相对应,应避免产生混乱。在书写时,可以将同一层的If子句和Else子句左对齐,内层的各语句块相对于外层向右缩进若干空格(TAB),以使程序结构更加清楚,便于阅读和查错
9、。 (2)每一个双分支结构都必须以If开始,以End If结束。,(3)内层嵌套的结构中除了满足该层规定的条件外,还必须首先满足外层结构中相应位置的条件。 (4)VB中对块嵌套的层数没有限制,在嵌套的结构中仍然可以继续嵌套其他的结构. (5)利用双分支If语句的嵌套可以解决“多分支”选择的问题。,【例】建立如图所示的界面,输入任一点的坐标(X,Y),判断该点位于哪个象限。 在平面直角坐标系中,点所在的象限有以下4种情况: X0 ,Y0 点位于第一象限内 X0, Y0 点位于第二象限内 X0, Y0 点位于第三象限内 X=0或Y=0 给出提示“该点不在任何象限内”。 建立界面,分别通过文本框Te
10、xt1和Text2输入坐标X、Y的值,单击“判断”按钮Command1进行判断,将结果直接显示在窗体上。,程序代码如下:,PrivateSub Command1_Click() x = Val(Text1.Text) y = Val(Text2.Text) 判断坐标点是否位于坐标轴 If x = 0 Or y = 0 Then Print 该点不位于任何象限 Exit Sub End If 判断坐标点所在象限 If x 0 Then If y 0 Then Print 该点位于第一象限,Else Print 该点位于第四象限 End If Else If y 0 Then Print 该点位于
11、第二象限 Else Print 该点位于第三象限 End If End If End Sub,多分支结构ElseIf 语句,多分支If Then ElseIf语句的格式: If 条件1 then 语句块1 ElseIf 条件2 then 语句块2 Else 语句块n+1 End If,格式说明: (1)可以放置任意多个ElseIf子句。 (2)关键字ElseIf中间没有空格,不能写成Else If。 (3)Else 只能有一个,一般放在最后 功能介绍:依次判断条件,如某一条件成立,则执行其下面的语句块;如果所有条件均不成立,则执行Else后面的语句。注意:在相应语句块执行完后,会跳过End I
12、f,执行其后面的语句。,多分支If Then ElseIf语句结构执行过程,T,功能说明: (1)不管有几个ElseIf子句,程序执行完一个语句块后,其余ElseIf子句不再执行。 (2)当多个ElseIf子句中的条件都成立时,只执行第一个条件成立的子句中的语句块。因此,在使用ElseIf语句时,要特别注意各判断条件的前后次序。,【例】输入一个学生的成绩score,根据其所在分数段给出他的考试等级。,score60时,打印“不及格”; 60=score=70时,打印“一般”; 70score=80时,打印“中等”;,80100时,打印“成绩有问题”。,该程序就是一个多分支选择的问题,可以使用E
13、lseIf语句实现。,程序代码如下: Private Sub Command1_Click() Dim score As Single score = Val(Text1.Text) If score = 60 And score 70 And score = 80 Then Print 中等,ElseIf score 80 And score 90 And score = 100 Then Print 优秀 Else Print 成绩有问题 End If End Sub,因为只有在前一个条件不成立的情况下,才有可能继续判断下一个条件是否成立,所以,上例中的条件部分也可以进一步简化,改成如下形
14、式:,If score 60 Then Print 不及格 ElseIf score = 70 Then Print 一般 ElseIf score = 80 Then Print 中等 ElseIf score = 90 Then Print 良好 Elseif score = 100 Then Print 优秀 Else Print 成绩有问题 End If,例5-2一个有多个分支的示例程序,Private Sub Command1_Click() Dim x As Integer x = Val(Text1.Text) If x 1 Then Text2.Text = “这是小于1的数”
15、 ElseIf x = 10 Then Text2.Text = “这是1到10之间的数” Else Text2.Text =”这是大于10的数” End If End Sub,IIf函数,格式: Result = IIf(条件, True部分, False部分) 当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时返回“False部分” 例如:MaxIIf(xy,x,y) r=IIf(s6,2,4) 注意:IIf函数中的三个部分都不能省略。,注意: 由于 IIf 会计算 “True部分”和“ False部分”,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果“ Fa
16、lse部分”产生一个被零除错误,那么程序就会发生错误,即使“条件”为 True,5.1.2 Select Case 语句,一般形式: Select Case e Case c1 A组语句 Case c2 B组语句 . Case Else n组语句 End Select,Select-Case结构语句使用说明:,e称为测试表达式,可以是算术表达式或字符表达式;c1,c2,.是测试项,它们可取三种形式: (1)具体取值:如:3、5、7.2等(当测试表达式是算术表达式时); (2)连续的数据范围:如:8 To 20;B To H等; (3)满足某个判决条件:如:Is20;Is 30 注意:多个表达式
17、之间不能用and以及or,本结构的执行方式是 先求测试表达式的值,接着逐个检查每个Case语句的测试项,如果,测试表达式的值满足某个测试项中的任意一个测试内容,系统就执行该Case语句下的那组语句,并且以后的Case语句都不执行,即使测试表达式的值满足该测试内容;若没有一个测试项满足要求,就执行Case Else下的语句,本组语句执行完后,接着执行End Select语句后面的语句。,Private Sub Command1_Click() Dim x As Integer x = Val(text1.Text) Select Case x Case Is 1 Text2.text = 这是小于1的数 Case 1 To 10 Text2.Text = 这是1到10之间的数 Case Else Text2.Text = 这是大于10的数 End Select End Sub,例题5-2也可以使用本结构语句实现,【例】某交易中介公司按交易双方成交额收取中介费用,收费标准如下: 交易额=10000 5% 5000=交易额10000 3% 1000=交易额5000 2% 500=交易额1000 1% 交易额500 免费 假设交易额通过文本框Text1输入,则“计算费用”按钮Command1的事件代码如下:,Private Sub Command1_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育宣传活动营销方案(3篇)
- 旧基础扩建施工方案(3篇)
- 果味白酒营销方案策划(3篇)
- 海鲜面店活动策划方案(3篇)
- 理财趣味活动策划方案(3篇)
- 组织风险评估应急预案(3篇)
- 自助修车活动策划方案(3篇)
- 金融系统营销方案(3篇)
- 医学26年:CKD外周血管病管理 查房课件
- 医学26年:尿路感染预防科普要点 查房课件
- 仓库工作纪律管理制度
- Windchill系统使用操作手册
- T/CHTS 20030-2023公路锌铝复合涂层钢护栏
- 2023气体绝缘金属封闭电器用全氟异丁腈混合气体密度继电器技术规范
- API STD 667-2022 板式和框架式热交换器
- 2024年甘肃定西中考数学试题及答案2
- 2023BIM三维场布实施标准
- 2024年新课标高考物理试卷(适用黑龙江、辽宁、吉林地区 真题+答案)
- 8S管理培训基础知识课件
- 小学科学教学仪器配备标准
- 城市智慧路灯(5G综合灯杆)建设工程项目(含方案设计及项目实施方案)
评论
0/150
提交评论