第5章VB控制结构

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表5-1MsgBox按钮的对应值 内部常数
vbOkOnly vbOkCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbTryCancel 0 1 2 3 4 5
按钮值
描述
显示Ok和Only 显示Ok和Cancel 显示Abort、Retry和Ignore 显示Yes、No和Cancel 显示Yes和No 显示Try和Cancel按钮
vbIgnore vbYes
5 Ignore (忽略) 6 Yes (是)
vbNo
7 No (否)
被按下的按钮 Ok (确 定)
5.2 选择结构
①表达式一般是关系表达式、逻辑表达式,表 ②当表达式的值为 True时,执行语句块中的程 ③语句块可以是一条语句也可以是多条语句; 5.2.1 if 语句 达式值为 True (真)或False(假);也可以是 序,否则跳过语句块,执行 当采用形式 2时,所有的语句均应写在同一行 If结构后面的语句 算数表达式,表达式值非零时为 True(真), (流程图如 5-4所示); ;语句间用冒号隔开。 1.If…Then 零为 语句(单分支结构) False(假)。 形式1: If <表达式> Then 语句块 x和y,比较它们的大 例如:已知两个数 End If 小并做相应处理,使得 x大于y,可以采 形式2: 用如下的程序代码: If <表达式> Then <语句块> If x < y Then t = x: x = y: y = t End If 也可以写成如下的单行形式: If x < y Then t = x: x = y: y = t
5.2.2 Select Case语句(情况语句)
格式: Select Case 测试表达式 Case 表达式列表1 语句块1 [Case 表达式列表2 语句块2] [… ] [Case Else 语句块n+1] End Select 功能:根据“测试表达式”的值,从多个语句块中选择一个符合条 件的去执行。具体的执行方式为:先求测试表达式的值,然后逐个 检查每个Case语句的测试项,如果测试表达式的值满足Case后面的 某个测试项,则系统将执行该Case语句后面的语句块;若没有满足 条件的测试项,则执行Case Else下的语句块。
5.1 顺序结构
2.MsgBox函数和语句 MsgBox函数形式为: Var = MsgBox(Prompt[, Button][, Title]) 其中: ①Prompt和Title的含义与InputBox函数中相应的含义相同; ②Button是整型表达式,由“按钮类型和数目”+“图标类 型”+“默认按钮”+“模式”四部分组成。各部分可选的值 及其功能见表5-1、表5-2、表5-3; ③若程序中需要返回值,则使用函数,否则可作为语句使用。 根据用户所选按钮,MsgBox函数返回1~7的整数值,其含义 如表5-4所示。 • MsgBox语句形式: • MsgBox Prompt[, Button][, Title]
表5-2MsgBox图标的对应值
内部常数
vbCritical 16
按钮值
描述
关键信息图标,红色Stop图标
vbQuestion
vbExclamation vbInformation
32
48 64
询问信息图标?
警告信息图标! 信息图标i
表5-3MsgBox缺省按钮和模式的对应值 内部常数
vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal vbSystemModal
按钮值
0 256 512 768 0 4096
描述
第一个按钮缺省 第二个按钮缺省 第三个按钮缺省 第四个按钮缺省 程序强制返回 系统强制返回
表5-4 MsgBox返回值 内部常数
返回值
vbOk vbCancel
1 2 Cancel (取消)
vbAbout vbRetry
3 Abort (中止) 4 Retry (重试)
第5章 VB控制结构
—《Visual Basic程序设计教程》
2014年4月12日
教学目标
• 能熟练运用VB基本语句进行顺序、选择和循环结构的 代码设计;
• 会使用三种控制结构解决实际问题。
5.1 顺序结构
在VB程序中,顺序结构语句主要包括变量声明语 句、赋值语句、注释语句等。VB没有专门的输入输出 语句,但输入输出功能可以通过文本框等控件和Print 等方法来实现,另外用户还可以使用InputBox函数和 Msgbox函数与用户交互来实现输入输出。
说明 如将例5-1 使用Select Case…..语句来实现的程序段如 下: ①“测试表达式”应与“表达式列表 1”、“表 Select Case score 2”等测试项同类型,可为数值或字符 Case 达式列表 90 To 100 串表达式; Text2.Text = "优秀" Case 80 To 89 Text2.Text = "良好" ②表达式列表一般有以下几种类型: Case 70 To 79 1)表达式 Case +5 " Text2.Text =A "中等 2)一组枚举表达式 (用逗号分隔) Case 2, 4, 6, 8 Case 60 To 69 3)表达式 1 To 表达式 2 Case 60 To 100 Text2.Text = "及格 " 4)Is Case 关系运算符表达式 Case Is < 60 Else 5)前面四种情况的组合 Case Text2.Text = "不及格 " Is > 0, 2, 4, 6, 8 End Select
5.2.1 if语句
3. If…Then…ElseIf语句(多分支结构) 形式: If <表达式1> Then <语句块1> ElseIf <表达式2> Then <语句块2> … [Else <语句块 n+1>] End If 该结构的流程图如图5-6所示。
Private Sub Command1_Click() 【例5-1】输入学生成绩,根据分数评定其等级。方法是: Dim score As Integer 90~100分为“优秀”,80~89score 分为 “Val(Text1.Text) 良好”,70~79分为“中等”, = If score >= 90 Then 60~69分为“及格”,60分以为 “不合格 ”,界面如图5-7所示。 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() Text1.Text = "" End Sub Private Sub Command3_Click() End End Sub
5.3 循环结构
5.3.1 Do„Loop循环语句
形式一
形式二
当 型 循 环
Do While <条件> 语句块 [Exit Do] 语句块 Loop
Do 语句块 [Exit Do] 语句块 Loop While <条件>
Private Sub Command1_Click () Dim n As Long, m As Long, r As Long n = Int(Val(Text1.Text)) 【例5-3】用欧几里得算法求解两个数的最大公约数,程序界 m = Int(Val(Text2.Text)) 面如图5-9所示 If (m < 1 or n < 1) Then Text3.Text = "请输入合法数据" Else Do r = m Mod n m=n n=r Loop While (r <> 0) Text3.Text = CStr(m) End If End Sub Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub Private Sub Command3_Click() End End Sub
If InStr(spesymbols, ch) Then KeyAscii = 0 Else KeyAscii = Asc(UCase(ch)) Exit Sub End If Select Case ch Case "$": Text1.Text = Text1.Text & "DLR" Case "#": Text1.Text = Text1.Text & "BPT" Case "%": Text1.Text = Text1.Text & "0/0" Case "&": Text1.Text = Text1.Text & "AND" Case "@": Text1.Text = Text1.Text & "AT" End Select Text1.SelStart = Len(Text1.Text) End Sub
【例5-2】将输入文本框中的所有小写字母转换成大写字母, Private Sub Text1_KeyPress(KeyAscii As Integer) 并将一些特殊符号变成等价的字符串,如 DLR表示 $、AT表示 Dim spesymbols As String @、0/0表示%、BPT表示 #、 AND 表示&等。可以在KeyPress事 Dim ch As String 件中修改文本框内容,使它能在用户输入这些字符时进行相 spesymbols = "$#%&@" ch = Chr(KeyAscii) 应修改。
注意
①返回值是字符串类型,当需要用该函数输入数值 数据时,应使用Val函数将其转换成相应的数据;
②该函数会产生“确定”和“取消”两个按钮(如图52所示)。单击“确定”,将返回输入数据,单击“取 消”,则返回空字符串; ③InputBox函数只能输入一个值,如需输入多个值,需 多次运行该函数; ④InputBox函数中的参数必须按照顺序一一对应,当某 些参数缺省时,必须用相应的逗号分隔,例如: X = (InputBox("请输入一个正数", , 100))
5.1 顺序结构
• MsgBox函数与语句的主要区别在于:MsgBox函数只能是 语句的一部分,不能独立存在,但它有返回值,对程序控 制非常有用;而MsgBox可作为语句直接使用,此时没有返 回值。例如要实现如图5-3所示的对话框,MsgBox函数与 语句的使用方法如下: Private Sub Command1_Click() X = MsgBox("注意:你输入的数据不正确", 51, "错误提醒 ") '函数形式 MsgBox "注意:你输入的数据不正确", 51, "错误提醒" '语句形式 End Sub
图5-1 顺序结构流程图
Fra Baidu bibliotek
5.1 顺序结构
1.InputBox函数 InputBox函数可接受用户通过键盘输入的数据,并返回其 输入的内容。该函数的使用形式为: Var=InputBox(Prompt[, Title][, Default] [, Xpos ][, Ypos] ) InputBox函数各参数的含义如下: ①Prompt:在窗口上显示的用于提示的文字信息,字符串类型。 该参数不能缺省; ②Title:显示在标题栏上的文字信息,缺省时为所在工程名; ③Default:编辑框中的缺省值,缺省时为空; ④Xpos和Ypos:决定着对话框在屏幕中显示的位置,单位为 twip。 例如,要在屏幕上显示如图5-2的对话框,可使用InputBox语 句: • X = InputBox("请输入一个正数", "输入框", 100)
例如:输出x,y两个中值较大的一个值,可 5.2.1 if语句 以采用如下的程序代码: If x > y Then 2. If…Then…Else语句(双分支结构) Print x 形式1: Else If <表达式> Then Print y <语句块1> End If Else 也可以写成如下的单行形式: If x > y Then <语句块2> Print x Else Print y End If 形式2: If <表达式> Then <语句1> Else <语句2> 这种结构是典型的选择结构,当表达式为True时执行语句块1 ,为False时执行语句块2。流程图如图5-5所示。
相关文档
最新文档