第四章 选择结构设计_第1页
第四章 选择结构设计_第2页
第四章 选择结构设计_第3页
第四章 选择结构设计_第4页
第四章 选择结构设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.5 选 择 结 构所谓选择结构,表示根据不同的情况做出不同的选择,执行不同的操作。此时就需要对某个条件做出判断,根据这个条件的具体取值情况,决定该执行何种操作。VB中的选择结构语句分为If语句和Select Case语句两种。 If语句If语句又分为单行格式和多行格式。1. 单行格式If语句此种格式在对条件进行判断后,根据所得的不同结果进行不同的操作。不管是哪种结果,操作部分都必须是单个语句。此种格式的具体语法如下:If 条件 Then 语句1 Else 语句2此种格式中的条件均为表达式,一般为条件表达式。条件表达式的值只有两种情况:真或假(即取值为零或非零)。某些情况下,其中的Else部

2、分是可以省略的。此格式所代表的含义是:当条件成立时,执行Then后面的语句1,执行完后再执行整个If语句后的语句;当条件不成立时,若存在Else部分,则执行Else后的语句2,再执行整个If语句后的语句,否则就直接执行整个If语句后的语句。例如:编写一个函数求两个数中最大数。Private Function MaxValue1(a As Integer,b As Integer) As Integer If a > b Then MaxValue1 = a Else MaxValue1 = bEnd Function2. 多行格式If语句多行格式又分为三种格式。(1)格式一此种格式的具体

3、写法如下:If 条件 Then 语句体End If这种格式代表的含义是:当条件成立时,执行Then后面的语句体中的全部语句,执行完后跳出整个If语句体,执行If语句体后的语句;当条件不成立时,直接执行整个If语句体后的语句。例如前面的求两个数中最大数的函数可以改写为:Private Function MaxValue2(a As Integer,b As Integer) As Integer If a > b Then MaxValue2 = a End If If a<=b Then MaxValue2 = b End IfEnd Function这种改法不一定好,但从功能上是

4、一致的。(2)格式二此种格式的具体写法如下:If 条件 Then语句体1Else语句体2End If这种格式代表的含义是:当条件成立时,执行Then后面的语句体1中的全部语句,执行完后跳出整个If语句体,执行If语句体后的语句;当条件不成立时,则执行Else后的语句体2中的全部语句,再执行整个If语句体后的语句。例如,前面的求两个数中最大数的函数可以改写为:Private Function MaxValue3(a As Integer,b As Integer) As Integer If a > b Then MaxValue3 = a Else MaxValue3 = b End I

5、fEnd Function(3)格式三此种格式的语法如下:If 条件1 Then 语句体1ElseIf 条件2 Then 语句体2 ElseIf 条件3 Then 语句体3 Else 语句体nEnd If此种格式只在条件不成立时再进行新的判断,可以使用简单的ElseIf格式。而且ElseIf部分可以嵌套多层,根据具体情况决定。只要使用时结构合理,可以使用任意层嵌套。例如,编写一个函数将分数转换成等级,转换方式如表3.4所列。表3.4 分数等级转换表等级分数优90良80中70及格60不及格60具体代码如下:Private Function Level1(x As Integer) As Stri

6、ng If x>=90 Then Level1 = "优" ElseIf x>=80 Then Level1 = "良" ElseIf x>=70 Then Level1 = "中" ElseIf x>=60 Then Level1 = "及格" Else Level1 = "不及格" End IfEnd Sub3.5.2 Select Case语句在有些情况下,对某个条件判断后可能会出现多种取值的情况,此时不能再使用上述If语句结构。在VB中,专门为此种情况设计了一个S

7、elect Case语句结构。在这种结构中,只有一个用于判断的表达式,根据此表达式的不同计算结果,执行不同的语句体部分。这种结构本质上是If嵌套结构的一种变形,主要差别在于:If嵌套结构可以对多个表达式的结果进行判断,从而执行不同的操作;而Select Case结构则只能对一个表达式的结果进行判断,然后再执行不同的操作。Select Case语句的一般格式为:Select Case 表达式 Case 表达式结果表1 语句体1 Case 表达式结果表2 语句体2 Case Else 语句体nEnd Select只要使用时结构合理,其中的“Case 表达式结果表”可以使用任意多个。上述格式中,表达

8、式可以是数值表达式或字符串表达式,然后根据表达式的取值来与下列的各个表达式结果表列去进行比较,若与其中某个值相同,则执行该表列后的相应语句体部分,执行后退出整个Select Case结构,执行其后的语句;若出现与表列中的所有值均不相等的情况,再看Select Case结构中是否有Case Else语句,如果有此语句,则执行其后相应的语句体部分,然后退出Select Case结构,执行其后的语句,否则不执行任何结构内的语句,整个Select Case结构结束,再执行其后的语句。Select Case语句一般格式中的表达式结果表列可以有如下四种格式,即允许出现四种Case形式:(1)表达式结果:此

9、种格式表达式结果表列中只有一个数值或字符串供用户与表达式的值进行比较。例如:Case 1或者Case "char"等。(2)表达式结果1,表达式结果2,表达式结果n:此种格式在某一个表达式结果表列中有多个数值或字符串供用户与表达式的值进行比较,多个取值之间用逗号间隔。如果表达式的值与这些数值或字符串中的一个相等,即可执行此表达式结果表列后相应的语句体部分;否则,若表达式的值与这些取值均不相等,可以再与其他Case后的表达式结果表列进行比较。例如:Case 1,3,5,7或者Case "a", "b", "c", &

10、quot;d" 等。(3)表达式结果1 To 表达式结果2:此种格式在表达式结果表列中提供了一个数值或字符串的取值范围,可以将此范围内的所有取值与表达式的值进行比较。要求表达式结果1的值必须小于表达式结果2的值,这样才能提供一个范围。如果表达式的值与此范围内的某个值相等,则可执行此表达式结果表列后的相应语句体部分;否则,若表达式的值与这个取值范围内的值均不相等,则可以再与其后的表达式结果表列进行比较。例如:Case 1 To 4或者Case "a" To "z"等。(4)Is 关系运算符 数值或字符串:此种格式使用了关键字“Is”,其后只能使用

11、各种关系运算符:“=”、“<”、“>”、“<=”、“>=”和“<>”等。可以将表达式的值与关系运算符后的数值或字符串进行关系比较,检验是否满足该关系运算符。若满足,则执行此表达式结果表列后的相应语句体部分;否则,与其后的表达式结果表列进行比较。例如:Case Is < 3 或者Case Is > "Apple" 等。在实际使用时,以上这几种格式允许混合使用。例如:Case Is < 5,7,8,9,Is > 12或Case Is < "z", "A" To "

12、Z"M注意:在使用Select Case结构时,需要注意以下两点:· 若在多个Case子句中有同一种取值重复出现,则只执行第一个出现此取值的Case语句后的相应语句体。· Select Case结构中的Case Else子句部分必须放在其他Case子句后面,用于表达式的值与前面所有Case子句均不匹配时,执行其后的语句体部分。这个子句部分可以省略,此时若出现与所有Case子句均不匹配的情况,则不执行任何语句体部分,直接退出Select Case结构,执行其后的部分。例如,前面的分数转换成等级的函数可以使用Select Case语句改写如下:Private Function Level2(x As Integer) As String Select Case x Case Is>=9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论