当前位置:文档之家› 第7章 VB控制结构

第7章 VB控制结构


9
7.1.2 块结构条件语句
If 条件1 Then 语句组1 [ ElseIf 条件2 Then 语句组2 ] …… [ ElseIf 条件i Then 语句组i ] …… [ ElseIf 条件N-1 Then 语句组N-1 ] [ Else 语句组N ] End If
10
说明: (1)块IF结构必须以If开头,以End If结束 (2)ElseIf 条件i Then,称为ElseIf语句,为可选 项,根据程序的需要可以有任意个,如果条件i取 值为True则执行对应子句中的语句组I (3)Else语句组:称为Else子句,当前面所有条件 均取值为False时,执行该子句对应的语句组,也 是可选项。

②使用To关键字,用以指定一个数值范围,要求小
数在To之前, 如1 To 10。

③Is(关系运算符表达式),用以指定一个数值范
围,如 Is >a+b。

在每个Case子句的<值列表>中,以上三种形式可以
任意组合使用。如:Case 3,5,7 To 9 ,Is < 2 。
20

说明:

3)Case
Private Sub Form_Load() Text1.Text = " " Text2.Text = " " Text3.Text = " " End Sub
四个文本框一个命令 按钮
8
7.1.2 块结构条件语句
1)如果每种分支中具有多条语句(尤其是复杂语 句),写在同一行上不方便,怎么办? 2)遇到条件比较复杂或者某条件下有较多分支(例 如:处理成绩分段问题)时怎么办?
现变量。
24
循环控制结构
为解决某问题,可能某一段代码需要有条件的连续重复执 行许多次,这就是循环程序结构。
需重复执行的一段代码,我们称之为循环体。
例7.1:计算 S= 1+2+3+··+n ·· ··
11
块If语句的流程图:
False 条件 1 True 语句组 1 True 语句组 2 True 语句组 N-1 语句组 N 条件 N-1 条件 2 False False
12
输入某学生成绩(百分制),若是100≥成绩≥90输出优秀; 若是90>成绩≥80输出良好;若是80>成绩≥70输出中等; 若是70>成绩≥60输出及格;若是60>成绩≥0,输出不及格; 若是其他数则输出error信息。
False
x>y
True Max=x: Min=y Max=y:min=x
N-S流程图
框式流程图
6
7.1 输入三个数,找出其中最大的数并输出。
分析:
这是程序中常用的一种算法,可以利用两两相比较取其大
者的方法,即先找出前两个数中较大者,再拿这个较大的 数与第三个比较就可以得到最大的数。需要用到分支结构
17
Select Case语句的 语法格式为: Select Case 表达式 Case 值列表1 语句组1 …… [ Case 值列表i 语句组i ] …… [ Case Else 语句组N ] End Select
Select Case score Case 90 to 100 Text2.Text = "优秀" Case 80 to 89 Text2.Text = "良好" Case 70 to 79 Text2.Text = "中等" Case 60 to 69 Text2.Text = "及格" Case Else Text2.Text = "不及格" End Select
X<-5 or x>5
X>0 AND X mod 5=0 Not a=0 AND b*b-4*a*c>=0
4
7.1 单行条件条件语句 是最简单的分支选择结构,全部语句写在同一行上。
语法格式: If 条件 Then 语句组1 [ Else 语句组2 ] 说明: (1)条件:关系表达式或逻辑表达式;如果是数值表达式, 则值为零时表示“False”,任何非零值都看作“True” (2)Then语句组1:条件为True时执行的语句,可以含一 条或多条语句 (3)Else语句组2:与IF then子句配对使用,根据实际情况 决定是否选用。

例如,Nop是1-4的值,转换成 + 、-、×、÷运算符的语句如下: Op= Choose(Nop,"+","-","×","÷") 当值为1,返回字符串“+”,然后放入Op变量中; 当值为2,返回字符 串“-”,依次类推; 当Nop是1-4的非整数,系统自动取Nop的整数办法来判断; 若Nop不在1-4之间,函数返回Null值。
5
注意: 1)构成单行If语句的各部分必须书写在同一行上。 2)语句组中允许有多条语句,但各语句之间要用“:”分开。 例如:求两个数x和y中的最大值Max和最小值Min: If x > y Then Max = x :Min = y Else Max = y :Min = x
x>y True Max=x Min=y False Max=y Min=x
3
条件
False
True 语句组1 语句组2
N-S流程图
(2)条件表达式
在条件语句中,作为判断依据的表达式称为条件表达式,
条件表达式的取值是逻辑型,最常见的表达式有两类:关系表
达式和逻辑表达式。 关系表达式:用关系运 算符将表达式连接起来 的式子。 20<=30 X=8 a+b>c Sqr(x)>=9 3>2>1 a<〝上海〞 逻辑表达式:用逻辑运算 符将关系表达式连接起来 的式子。 x>5 and x<=10
16
7.2
多分支选择结构语句
问题思考: 块If语句可以解决所有的分支选择问题,包括 单条件和组合条件的情况,但是对于有些情况块 If显得复杂,且效率不高,有没有更好的实现形 式呢? 解决方案: 多分支选择结构,从多个选择分支中,选择一 个与条件匹配的分支作为程序的执行路线 ,用 Select Case语句。
错误
23
选择结构常见错误
1.在选择结构中缺少配对的结束语句
对多行式的If块语句中,应有配对的End If语句结束
Select应有End Select作为结束语句。
2. 多边选择ElseIf关键字的书写和条件表达式的表示
ElseIf 不要写成Else If;
3. Select Case语句的使用
Select Case后不能出现多个变量;Case子句后不能出
End Sub
Private Sub Command1_Click() Dim x As Single score = Val(Text1.Text) Select Case score Case Is >= 90 Text2.Text = "优秀" Case 80 To 90 Text2.Text = "良好" Case 70 To 80 Text2.Text = "中等" Case 60 To 70 Text2.Text = "及格" Case Else Text2.Text = "不及格" End Select End Sub
例 输入百分制成绩score,显示对应的五级制成绩
Private Sub Command1_Click() Dim x As Single score = Val(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 Is < 60 Text2.Text = "不及格" End Select End Sub
Else:当表达式的值与前面所有的Case子句
的值列表都不匹配时的情况下执行语句组N • 4)End Select:为多分支结构语句的结束标志。
21
注意:
(1)如果某个值列表i与表达式的值相匹配,就执行该 Case子句中的语句组i,之后该Select Case语句 结束。程序继续执行End Select子句后面的其它语 句。 (2)如果有多个值列表与表达式的值相匹配时,只有第 一个匹配的Case子句被执行,然后该Select Case 语句结束。 (3)如果没有一个值列表与表达式的值相匹配,就执行 Case Else子句中的语句组N,之后该Select Case 语句结束。 (4)如果实际编写的程序中既没有一个值列表与表达式 的值相匹配,又没有Case Else子句,则该Select 22 Case语句不执行任何语句就结束。
18
说明:
• 1)表达式:可以是数值表达式或字符串表达式,通常用 数值类型或字符串类型的变量。 • 2)Case 值 列 表 i:是Case子 句 ,如果表达式与某个 Case子句的值列表i相匹配,则执行该Case子句中的语 句组i。
19


Case子句中的“值列表i”可以有三种表示形式:
①一个或多个常量,多个常量之间用“,”分开。
第 7 章 VB控制结构
1
7.1 选择控制结构
7.2 多分支选择结构语句
7.3 For循环结构
相关主题