当前位置:文档之家› 第5章选择结构程序设计

第5章选择结构程序设计

End Sub
通过此题看出,根据学生成绩的不同,程序运行的结果也不同。这种根据条件,选择 执行某个语句或语句块的形式,就为选择结构。本章主要介绍实现选择结构的程序设计。
5.2 If 语 句
If 语句是最常用的实现选择结构的语句。If 条件有多种形式,包括单分支、双分支和 多分支语句等。
5.2.1 单分支 If 语句
If <条件表达式 1> Then <语句块 1>
ElseIf <条件表达式 2> Then <语句块 2> ……
ElseIf <条件表达式 n> Then <语句块 n>
[Else <语句块 n+1>]
End If
执行过程:首先判断<条件表达式 1>的值,若<条件表达式 1>的值为 True,则执行 Then 后面的语句块 1,然后执行 End If 语句;若<条件表达式 1>的值为 False,则判断<条件表达 式 2>的值。若<条件表达式 2>的值为 True,则执行 Then 后面的语句块 2,然后执行 End If 语句;若<条件表达式 2>的值为 False,则继续依次判断后续条件表达式,直至某个条件表 达式为 True 时,执行对应 Then 后面的语句块,然后执行 End If 语句。若所有条件表达式 的值都为 False,则执行 Else 后面的语句块 n+1。执行流程图如图 5.5 所示。
分析: (1)输入和输出均用对话框实现,故窗口上不需添加任何控件。事件过程可选 Form_Click()。 (2)在 Form_Click()事件中,首先输入 x 的值,然后对 x 的值做 If 条件判断,并根据 不同的判断结果做相应的处理,最后输出计算结果。 (3)判断数字字符的函数为 IsNumeric(),比如,若 IsNumeric(x)的值为 True,则表示 x 是数字字符。
程序代码如下:
Private Sub Form_Click() x = InputBox("请输入 x 的值", "输入框") If Not IsNumeric(x) Then
第 5 章 选择结构程序设计
83
MsgBox x & " 不是数值!" Exit Sub ElseIf Val(x) <= 0 Then y=2*x+2 ElseIf Val(x) > 0 And Val(x) < 2 Then y = -1 / 2 * x Else y=3 End If MsgBox y, vbInformation, "输出" End Sub
格式 1:单行形式
If <条件表达式> Then <语句块>
格式 2:块形式
If <条件表达式> Then <语句块>
End If
执行过程:判断<条件表达式>的值,条件表达式的值若为 True,则执行 Then 后面的 语句块,若为 False,则什么也不做,直接执行 If 结构后面 的语句。执行流程图如图 5.2 所示。
80
Visual Basic 程序设计
If x < y Then t = x: x = y: y = t
块形式的写法是:
If x < y Then t=x x=y y=t
End If
5.2.2 双分支 If 语句
格式 1:单行形式
If <条件表达式> Then <语句块 1> Else <语句块 2>
入 x 值,若 InputBox 对话框输入的不是数值则弹出消息对话框;若是数值,则按下列分段
函数计算 y 的值,并用 MsgBox 消息对话框显示 y 的值。
⎧2x 
-
1 2
x
⎪⎩ 3
x≤0 0<x<2
x≥ 2
程序的部分运行结果如图 5.6 所示。
图 5.6 例 5.3 的部分运行结果
5.3 Select Case 语句
另一种实现选择结构的语句是 Select Case 语句,使用它可以方便、直观地处理多分支 的控制结构。
其语法格式如下:
Select Case <测试表达式> Case <表达式列表 1> <语句块 1> Case <表达式列表 2> <语句块 2>
对比单分支 If 语句,双分支 If 语句多了 Else 分支。与单分支的格式要求类似,格式 1
中 If 语句必须在一行内书写完毕;格式 2 中 If…Then 行的后面不要写语句,将条件成立要
执行的所有语句放到 If…Then 和 Else 中间,Else 独立占一行,将条件不成立时要执行的所
有语句放到 Else 和 End If 中间,且必须以 End If 结束。
第 5 章 选择结构程序设计
在日常生活和工作中,经常会遇到各种各样的选择,根据选择的不同,会得到不同的 结果。在程序设计中,也经常会根据不同的情况执行不同的操作,这与现实生活中的选择 非常类似。但程序设计中的选择结构根据条件只能选择一个分支执行,即无论分支多寡, 必择其一;纵然分支众多,仅选其一。
本章主要介绍实现选择结构程序设计方面的知识,包括 If 语句、Select Case 语句、条 件函数的使用,最后介绍与选择结构相关的单选按钮、复选框和框架三个基本控件的使用。
分析: (1)界面设计。在窗体上添加所需的标签控件、文本框
图 5.4 例 5.2 的运行结果
第 5 章 选择结构程序设计
81
控件和命令按钮控件,并设置控件的相关属性。通过将文本框 Text2 的 PasswordChar 属性 设为“*”,使在文本框 2 中输入的文本显示为“*”。
(2)代码设计。根据题意要求,先从文本框中获取输入的用户名和密码,之后使用双 分支的 If 语句对姓名和密码进行条件判断,并根据判断结果,做出不同的处理。使用 setFocus 方法将光标移到文本框 1 中,即让文本框 1 获得焦点。
该题目是选择结构的典型应用。程序代码如下:
Private Sub Command1_Click() cj = Val(Text1) If cj < 0 Or cj > 100 Then MsgBox "输入的成绩无效" Text1.Text = "" Label1.Caption = "" ElseIf cj >= 90 Then Label3.Caption = "优" ElseIf cj >= 80 Then Label3.Caption = "良" ElseIf cj >= 70 Then Label3.Caption = "中" ElseIf cj >= 60 Then Label3.Caption = "及格" Else Label3.Caption = "不及格" End If
【例 5.2】 设计一个登录窗口,如图 5.4 所示。用户输
入用户名和密码,单击“登录”按钮对用户名和密码进行验
证。若用户名为“admin”,密码为“123456”,则弹出消息
框提示“登录成功!”;否则弹出消息框提示“用户名或密码
错误,请重新输入!”,并且将光标移到文本框 1 里,同时选
中文本框 1 的文本。
'若 w 的值为小于等于 0 的数,则 price 的值为 0
End If
84
Visual Basic 程序设计
Label5.Caption = price End Sub
思考:例 5.4 程序中 If 语句的第一个条件表达式“w > 0 And w <= 1”可以写成“w <= 1”吗?第二个条件表达式“w > 1 And w <= 10”可以写成“w <= 10”吗?为什么?
格式 2:块形式
If <条件表达式> Then <语句块 1>
Else <语句块 2>
End If
执行过程:判断<条件表达式>的值,若为 True,则执行 Then 后面的语句块 1,若为 False,则执行 Else 后面的语句块 2,执行流程图如图 5.3 所示。
图 5.3 双分支 If 语句流程图
注意: 在一个 If 语句中,条件表达式和语句块的个数没有限制,但最多只执行一个语句块, 被执行的语句块是依次判断条件表达式最先为 True 的那个分支。 If 语句中 ElseIf 这个词的中间没有空格。
82
Visual Basic 程序设计
图 5.5 多分支 If 语句流程图
【例 5.3】 计算分段函数的值。运行程序后,在窗体上单击,弹出 InputBox 对话框输
图 5.7 例 5.4 的运行结果
分析:使用文本框获得包裹的重量,用标签输出计算出来的应付运费。编写代码时, 首先从文本框中得到包裹重量的值,赋给变量 w,然后根据 w 的值的范围条件,分别计算 应付的运费。
程序代码如下:
Private Sub Command1_Click()
Dim w As Single, price As Single
程序代码如下:
Private Sub Command1_Click()
userN = Text1.Text
ps = Text2.Text
If userN = "admin" And ps = "123456" Then
相关主题