vb选择结构程序设计

上传人:xuey****n398 文档编号:244661750 上传时间:2024-10-05 格式:PPT 页数:37 大小:262.99KB
返回 下载 相关 举报
vb选择结构程序设计_第1页
第1页 / 共37页
vb选择结构程序设计_第2页
第2页 / 共37页
vb选择结构程序设计_第3页
第3页 / 共37页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第5章 选择结构程序设计,本章要点:,1块结构条件语句IfThenEnd If的使用,2多分支条件语句ElseIf的应用,3 多分支选择语句Select CaseEnd Selec的应用,选择结构是一种常用的基本结构,其特点是根据所给定的选择条件为真或假,来决定从不同操作中选择执行一种操作。,选择结构程序设计,5.1 块If条件语句,5.4 Select Case 语句,5.5 应用举例,返回,退出,5.2 块If语句的嵌套,5.3 ElseIf条件语句,5.1块If语句(If.Then语句),块,If,语句是用来判断条件成立与否,然后决定下一步怎么执行的一种控制语句,这种选择结构是最常用的双选择结构,即只有两种操作可以选择。如果条件为真,执行其中一个操作;如果条件为假,则执行另外一个操作。,块结构,if,语句语法格式如下:,If Then,Else,End If,说明:,为必选项,它可以是关系表达式、布尔表达式、数值表达式或字符串表达式,但总的说来它是一个逻辑值的表达式,其返回结果必须是,True,或,False,。对于数值表达式,,VB,将,0,作为,False,,非,0,作为,True,来处理;对于字符串表达式,,VB,只允许出现包含数字的字符串,当字符串中的数字值为,0,时,则认为是,False,,否则认为是,True,。,和,可以是一条语句,也可以是多条语句。,单行结构,If,语句的执行过程是这样的:首先计算,的值,如果结果为,True,,则执行,,否则,执行,。,T(真),F(假),条件满足?,语句块1,语句块2,End If之后的语句,选择结构流程图,【例,5.1,】设计界面如图,5-2,所示,用文本框,Text1,输入,x,的值,单击按钮时,在标签,Label1,中显示出,x,的绝对值。,运行界面,“求绝对值”按钮,Command1,的单击事件过程如下:,Private Sub Command1_Click(),x=Val(Text1.Text),将文本框中的字符内容转换成数值,If x 0 Then,Label1.Caption=x,Else,Label1.Caption=-x ,根据,x,的正负确定显示结果,End Sub,使用该语句时,应该注意以下问题:,(,1,)整个块结构必须以,If,开始,以,End If,结束。,(,2,)块结构,If,语句中,Then,后面的语句不能与其写在同一行上,否则,必须加上分隔符。,(,3,)块结构中的,是可以省略的。省略后即简化为以下形式:,If Then,End If,这种形式的,If,语句主要用来判断一些操作是否执行。当条件成立时,根据,完成的一定的操作;而当条件不成立时不做任何处理,直接执行下条语句。,例如,例5.1也可以采用下列程序段来实现。,x=Val(Text1.Text),If x 0 Then,x=-x ,取负数,x,的相反数,End If,Label1.Caption=x,(,4,)在块结构中,,If,后面显式的给出了判断条件,,Else,后面虽然没有显式的给出一个条件,但相当于存在一个与,If,部分相反的隐含条件。,返回,在实际应用中,经常会遇到“多分支”选择的程序,即从多种情况中选择执行其中一种情况,这时,就要使用块,if,语句的嵌套。,块结构,If,语句可以嵌套,即在上述结构中的,和,部分仍然可以包含另外一个块结构,If,语句。如果在条件成立或不成立的情况下要继续判断其他条件,则可以在语句块的位置上再使用另外一个块结构条件语句。,5.2,块if语句的嵌套,If子句部分的嵌套结构,Else子句部分的嵌套结构,使用嵌套语句时应注意以下问题:,(,1,)如果存在嵌套时,语句中的每一个,Else,必须和一个,If,相对应,应避免产生混乱。在书写时,可以将同一层的,If,子句和,Else,子句左对齐,内层的各语句块相对于外层向右缩进若干空格,以使程序结构更加清楚,便于阅读和查错。,(,2,)每一个块结构都必须以,If,开始,以,End If,结束。,(,3,)内层嵌套的块结构中除了满足该层规定的条件外,还必须首先满足外层结构中相应位置的条件。,(,4,),VB,中对块嵌套的层数没有限制,在嵌套的块结构中仍然可以继续嵌套其他的块结构,但嵌套时外层的块结构必须完全“包住”内层的块结构,不能相互“骑跨”。,(,5,)利用块,If,语句的嵌套可以解决“多分支”选择的问题。,【例,5.2,】建立如图,5-3,所示的界面,输入任一点的坐标(,X,,,Y,),判断该点位于哪个象限。,在平面直角坐标系中,点所在的象限有以下,4,种情况:,X0,,,Y0,点位于第一象限内,X0,,,Y0,点位于第四象限内,X0,点位于第二象限内,X0,,,Y 0 Then,If y 0 Then,Print,该点位于第一象限,Else,Print,该点位于第四象限,End If,Else,If y 0 Then,Print,该点位于第二象限,Else,Print,该点位于第三象限,End If,End If,End Sub,程序代码如下:,程序运行界面,【例,5.3,】编程序求一元二次方程,ax2+bx+c=0,的根(,a,不等于零)。,分析:根据数学知识,要求一元二次方程的根,必须知道方程的三个系数,a,、,b,、,c,的值,然后根据判别式,b2-4ac,的值的情况判断方程的根。方程的根有以下三种情况:,当,b2-4ac0,时,方程有两个不相等的实根;,当,b2-4ac=0,时,方程有两个相等的实根;,当,b2-4ac=0 Then,If dert 0 Then,r=Sqr(dert)/(2*a),x1=p+r,x2=p-r,Else,x1=p,x2=p,End If,Label5.Caption=x1=&x1&str&x2=&x2,Else,r=Sqr(-dert)/(2*a),Label5.Caption=x1=&p&+&r&i&str&x2=&p&-&r&i,End If,End Sub,返回,5.3 ElseIf,语句,ElseIf子句的格式:,If,条件,1 then,语句块,1,ElseIf,条件,2 then,语句块,2,Else,语句块,n+1,End If,对ElseIf子句的格式说明:,(,1,)可以放置任意多个,ElseIf,子句。,(,2,)关键字,ElseIf,中间没有空格,不能写成,Else If,。,ElseIf子句的功能:依次判断条件,如某一条件成立,则执行其下面的语句块;如果所有条件均不成立,则执行,Else,后面的语句。在相应语句块执行完后,会跳过,End If,,执行其后面的语句。,Else If,结构执行过程,功能说明:,(,1,)不管有几个,ElseIf,子句,程序执行完一个语句块后,其余,ElseIf,子句不再执行。,(,2,)当多个,ElseIf,子句中的条件都成立时,只执行第一个条件成立的子句中的语句块。因此,在使用,ElseIf,语句时,要特别注意各判断条件的前后次序。,【例,5.4,】输入一个学生的成绩,score,,根据其所在分数段给出他的考试等级。,score60,时,打印“不及格”;,60=score=70,时,打印“一般”;,70score=80,时,打印“中等”;,80score=90,时,打印“良好”;,90score100,时,打印“成绩有问题”。,该程序就是一个多分支选择的问题,可以使用,ElseIf,语句实现。程序代码如下:,Private Sub Command1_Click(),Dim score As Single,score=Val(Text1.Text),If score=60 And score 70 And score 80 And score 90 And score=100 Then,Print,优秀,Else,Print,成绩有问题,End If,End Sub,因为只有在前一个条件不成立的情况下,才有可能继续判断下一个条件是否成立,所以,上例中的条件部分也可以进一步简化,改成如下形式:,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.6,】设计一个口令检测程序,当用户输入的口令正确时,显示“你已成功进入本系统”,否则,显示“口令错!请重新输入”。如果连续三次输入了口令仍不正确,则提示“你无权使用本系统”。,分析:假设使用一个文本框,Text1,来接收口令,运行时用户输入完口令并按回车键后系统才对输入的口令进行检查,因此本例使用了,Text1,的,KeyUp,事件。当焦点位于文本框内,按下键盘上任一键后会产生,KeyUp,事件,同时返回按键代码,KeyCode,。回车键的代码为,13,,所以程序首先判断用户是否在,Text1,中按下了回车键,若,KeyCode,13,,表示口令输入完。,说明:在程序中是使用了一个静态变量,I,,用于统计输入错误口令的次数。静态变量,I,只在第一次判断口令时被初始化为,0,,以后每次执行该过程时,如果口令错误,则,I,的值累加,1,,因此,当,I,的值为,3,时,表示用户已经连续三次输入了错误口令。,程序代码如下:,Private Sub Text1_KeyUp(KeyCode As Integer,Shift As Integer),Static I As Integer,If KeyCode=13 Then,If UCase(Text1.Text)=abcd Then,Label2.Caption=,你已成功进入本系统,ElseIf I 20,测试表达式,20,Select Case,语句功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。,Select Case,语句的执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个,Case,子句中情况,如果找到了,则执行该,Case,子句下面的语句块,然后执行,End Select,后面的语句;如果没找到,则执行,Case Else,后面的语句块,然后执行,End Select,后面的语句。,【例,5.7,】用,Select Case,语句代替,ElseIf,语句来实现成绩的鉴定。保持界面不变,双击“鉴定”按钮,修改代码如下:,Private Sub Command1_Click(),单击“鉴定”按钮,Dim x!,单击“鉴定”按钮,x=Text1.Text,Select Case x,Case Is=90,Text2.Text=,优秀,Case Is=80,在,x,90,不成立时,再判断,x,80,是否成立,Text2.Text=,良好,Case Is=70,Text2.Text=,中,Case Is=60,Text2.Text=,及格,Case Else,Text2.Text=,不及格,End Select,End Sub,【例,5.8,】某交易中介公司按交易双方成交额收取中介费用,收费标准如下:,交易额,=10000 5%,5000=,交易额,10000 3%,1000=,交易额,5000 2%,500=,交易额,1000 1%,交易额,500,免费,假设交易额通过文本框,Text1,输入,则“计算费用”按钮,Command1,的事件代码如下:,Private Sub Command1_Click(),Trade=Val(Text1.Text),Select Case Trade,Case Is500,Discount=0,Case Is1000,Discount=0.01,Case Is5
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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