资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,请单击鼠标左键换页!,第4章 选择结构,在程序设计中经常遇到这类问题,它需要根据不同的情况采用不同的处理方法。例如,一元二次方程的求根问题,要根据判别式小于零或大于等于零的情况,采用不同的数学表达式进行计算。对于这类问题,如果用顺序结构编程,显然力不从心。必须借助选择结构。本章主要介绍实现选择结构的语句。包括:行,If,语句、块,If,语句、,Else If,语句、,Select Case,语句,以及选择结构在程序设计中的应用。,退出,4.1 块,If,4.2 Else If,语句,4.3 行,If,语句,4.4,Select Case,语句,4.1 块,If,4.1.1 块,If,的格式、功能,格式:,If,条件,then,语句块1,Else,语句块2,End If,说明:,(1)“条件”一般为关系表达式或逻辑表达式。,通常把关系表达式或逻辑表达式的值为真时,称为条件满足;值为假时,称为条件不满足。反之亦然。,(2)语句块1、语句块2分别是“条件”满足或不满足时,处理方法的描述,可以是若干个语句。,(3),IfThen、Else、End If,是,VB,的保留字。,功能:,(1)块,If,首先判断“条件”,其值为真时,执行语句块1;为假时执行语句块2。当缺省,Else,中的内容时,该选择结构只对条件满足的情况进行处理。执行过程如图4-1所示。,【例4.1】火车站行李费的收费标准是50,kg,以内(包括50,kg)0.20/kg,,超过部分0.50/,kg。,编写程序,要求根据输入的任意重量,计算出应付的行李费。,根据题意计算公式如下:,程序代码如下:,计算按钮代码,Private Sub Command1_Click(),Dim weight as single,pay as single,weight=Text1.Text,If weight 50 Then,pay=(weight-50),*,0.5+50,*,0.2,Else,pay=weight,*,0.2,End If,Text2.Text=pay,End Sub,Private Sub Command2_Click(),Text1.Text=,Text2.Text=,End Sub,Private Sub Command3_Click(),End,End Sub,4.1.2 块,If,的嵌套,所谓块,If,语句的嵌套,就是在语句块1或语句块2中又包含块,If,语句。,【例4.2】任意输入3个数,按照从大到小的顺序输出。,算法分析:排序的基本方法,就是比较大小,然后根据比较的结果分别加以处理。本例把3个数分别放在,A,,,B,,,C,中,处理过程为:若,A,B,为真,交换,A,,,B,的值;否则不做处理。这样就保证了,A,B,;,然后再用,C,去比较。具体流程如图4-3所示。按如图4-4所示设置界面。,程序代码如下:,排序按钮代码,Private Sub Command1_Click(),Dim a As Single,c As Single,b As Single,a=Text1.Text,b=Text2.Text,c=Text3.Text ,三个文本框的数据赋值给变量,If a b Then,t=a,a=b,b=t ,a,B,If c a Then ,用,C,去比较,Text4.Text=c ,C,A,成立,,C,最大,Text5.Text=a,Text6.Text=b,Else,If c b Then,Text4.Text=a ,C,=90 Then,Text2.Text=,优秀,ElseIf,score=80 Then,Text2.Text=,良好,ElseIf,score=70 Then,Text2.Text=,中,ElseIf,score=60 Then,Text2.Text=,及格,Else,Text2.Text=,不及格,End If,End Sub,“,退出”按钮代码,Private Sub Command2_Click(),End,End Sub,ElseIf,语句,实际完成的是块,If,的嵌套,它和块,If,嵌套的格式上有很大区别,,ElseIf,结构只有一对,If,和,End If,语句。另外应注意:,【,Else,If】,和【,ElseIf,】,的区别。,4.3 行,If,语句,格式:,If,条件,then,语句1,Else,语句2,功能:当条件满足时,执行语句1;条件不满足时,执行语句2。,从行,If,的格式和功能不难看出,行,If,语句是一种简单的分支结构,只是把一个简单的块,If,结构写在一行中,减少了语句行,省略了“,End If”,的书写。行,If,完全可以用块,If,代替。,【例4.6】任意输入3个数,找出其中的最大值。,程序代码如下:,Private Sub Command1_Click(),Dim a As Single,b As Single,c As Single,max As Single,a=Text1.Text,b=Text2.Text,c=Text3.Text,max=a,If b max Then max=b,If c max Then max=c,Text4.Text=max,End Sub,4.4,Select Case,语句,当对一个表达式的不同取值情况作不同处理时,用,ElseIf,语句程序结构显得较为杂乱,而用,Select Case,语句将使程序的结构更清晰,,Select Case,语句又称为情况语句。,格式:,Select Case,测试表达式,Case,表达式列表1,语句块1,Case,表达式列表2,语句块2,Case,表达式列表,n,语句块,n,Case Else,语句块,n+1,End Select,功能:根据“测试表达式”的值,选择第一个符合条件的语句块执行。,Select Case,语句的执行过程是:先求“测试表达式”的值,然后顺序测试该值符合哪一个,Case,子句中情况,如果找到了,则执行该,Case,子句下面的语句块,然后执行,End Select,下面的语句;如果没找到,则执行,Case Else,下面的语句块,然后执行,End Select,下面的语句。,说明:,“测试表达式”可以是数值型或字符串型表达式;,“表达式列表”形式有以下3种:,(1)一个表达式或用逗号隔开的若干表达式,(2)表达式1,To,表达式2,(3),Is,关系运算符 表达式,【例4.7】把例4.3中“鉴定”按钮的代码用,Select Case,语句改写。,Private Sub Command1_Click(),Dim score!,score=Text1.Text,Select Case score,Case Is=90,Text2.Text=,优秀,Case Is=80,Text2.Text=,良好,Case Is=70,Text2.Text=,中,Case Is=60,Text2.Text=,及格,Case Else,Text2.Text=,不及格,End Select,End Sub,
展开阅读全文