VB程序设计基础 第4章 程序的基本结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 程序的基本结构
Visual Basic程序包括三种基本结构: 顺序结构、 选择和分支结构、 循环结构。
退出
§ 4.1 顺序结构
顺序结构就是指:各个语句按出现的先后顺序依次 执行。
…
开始语句 语句1 语句2
……
结束语句
对于各种程序设计语言来说,顺序结构的语 句主要包含了赋值语句、输入/输出语句等等。
命令按钮
图标
VbDefaultButton1
默认按钮 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 强制返回 VbApplicationModel VSystemModel
0
256 512 768 0 4096
第一个按钮是默认值
第二个按钮是默认值 第三个按钮是默认值 第四个按钮是默认值 程序强制返回,直到用户作出响应。 系统强制返回,直到用户作出响应。
Байду номын сангаас
四、格式输出函数Format与Print方法
Format通常与Print方法配合使用
格式:Format (表达式[,格式控制符]) 说明: 表达式——要格式化输出的数值、日期或字符串类型 表达式 格式控制符——用来指定输出个实的字符串,格式字 符串必须用双引号括起来。
功能:按一定格式输出
(一)数值格式化
(二)函数的用途 在应用程序中,MsgBox的返回值一般用来作为继 续执行程序的依据,根据返回值决定后面的操作。 MsgBox函数的返回值
返回值 1 操作 选“确定”按钮 符号常量 VbOk
2 3 4 5 6 7
选“取消”按钮 选“终止”按钮 选“重试”按钮 选“忽略”按钮 选“是”按钮 选“否”按钮
程序流程见下图:
前一语句
条件
True False
语句1 后续语句
语句2
(三)if……then ……elseif语句(多分支结构) 1.语句格式
条件1 Then 语句块1 [Elseif 条件2 Then 语句块2] [Elseif 条件3 Then 语句块3] … … [Else 语句块n] End If
类别
符号常量
VbOKOnly VbOKCancel VbAbortRetrylgnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation Vbinformaation
值
0 1 2 3 4 5 16 32 48 64
显示按钮、图标
―确定”,按钮 ―确定”,“取消” 按钮 ―终止”,“重试”,“忽略”按钮 ―是”,“否”,“取消”按钮 ―是”,“否”按钮 ―重试”,“取消”按钮 Critical Message图标 Warning Query图标 Warning Message图标 Informaation Message图标
(二)日期和时间格式化
将日期类型的值或数值表达式以日期、时间的序 数值按“格式控制符”制定的格式输出。 (三)字符串格式化 将字符串按“格式控制符”制定的格式输出,主 要是字母大小写、字符串长度控制等处理。
§ 4.2 选择分支结构
使用条件语句实现选择结构
一、条件语句(if)
Visual Basic的选择结构程序是应用单分支, 双分支,多分支语句来实现的。
一、赋值语句
赋值语句由变量名、赋值运算符(=)和 某种类型的表达式组成。赋值语句的一般格式为: 变量=表达式 赋值语句有两个基本功能:对表达式进行计算 和保存表达式的值。 赋值语句被执行时:它先对赋值运算符右边的 表达式进行计算,然后将结果存储在运算符左边 的变量中。
若事先定义了变量的类型,变量的类型和表达式 计算结果的值必须相匹配。 (一)赋值号两边类型不一致时的处理规则:
If
2.语句功能 如果第k个条件表达式 (k=1,2,3… …)成立, 则执行语句块k(k=1,2,3… …), 否则执行语句块n。 其判断顺序为表达式1、表达式二……
多分支结构流程图
表达式1
True False
表达式2
True
False False
表达式n-1
True
语句块1
语句块2
语句块n-1
语句块n
3.注意: (1)无论有多少个分支,程序执行一个分支以 后,其余的分支便不再执行 (2)关键字ElseIf不能写成Else If
(3)当多分支中有多个表达式同时满足判断条 件时,则只执行第一个与之匹配的语句。
例4.8 根据输入的百分制成绩Score,转换成优、良、 中、及格、不及格5个等级,并在窗体上显示出来。 等级划分标准如下: 优 Score>=90 良 80<=Score<90 等级 = 中 70<=Score<80 及格 60<=Score<70 不及格 Score<60
(二)使用赋值语句时的注意事项: 1.“=‖的左边只能是变量名,不允许出现常量 和表达式。 Exp(2)=e^2 36=6^2 100=10*10
2.不允许在同一个赋值语句中为多个变量复 制(c语言允许) x1=x2=0 编译器将会把第一个=当成赋值符 号,而把第二个=当成比较运算符,把x2=0当作了 逻辑表达式。
2、判断表达式中如果出现“=‖,则视为关系运算符, 不视为赋值运算。
(二)if……then ……else 语句( 双分支) 1、语句格式:
If
条件 Then 语句块1 Else 语句块2 End If
语句1 Else 语句2
或
If 条件 Then 2、功能:
判断条件,若条件为真,执行语句块1;条件为 假,执行语句块2。即在两个语句块中选择一个。
(一)IF……then语句(单分支) 语句格式: 1、If <表达式> Then <语句体> 2、或:If <表达式> Then
语句块 End If
•表达式:一般为关系表达式、逻辑表达式,也可以 是算术表达式。表达式的值不为零则视为True,为 零则视为False。 语句块:一个或多个语句。若用1的简单形式,则语 句块只能是单个语句。 功能:判断条件,为真则执行语句体;否则执行后 面的语句。
Visual Basic语言中,多分支结构也是可 以通过情况语z实现的。
(一)情况语句的格式 Select Case <测试表达式> Case <表达式列表1> 语句块1 Case <表达式列表2> 语句块2 …… Case <表达式列表n> 语句块n Case Else 语句块n+1 End Select
1.当左右均为数值类型时,右边表达式的精度与左 边变量精度不同时,强制转换成左边变量的精度。 2.当右边表达式是数字字符串,左边变量是数值类 型时,自动转换成数值类型再进行赋值。但如果表达 式中有非数字字符或空字符串时,就会出错。
3.当逻辑表达式复制给数值类型时,true转换为-1, false转换为0; 反之,当数值类型转换为逻辑类型时,非0转换为 true,0转换为false。 4.任何非字符类型赋值给字符类型时,均自动转换 为字符类型。
True
False False
表达式n-1
True
语句块1
语句块2
语句块n-1
语句块n
2、<表达式列表>有三种描述形式 第一:可以是单值常量(数值或字符串), 当用“,”分割各个常量时,是“或”的逻辑 关系 Month = InputBox("输入月份数:") Select Case Month Case 1, 3, 5, 7, 8, 10, 12 x = "本月有31天。" Case 4, 6, 9, 11 x = "本月有30天。" Case 2 x = "本月有28天。" Case Else x = "输入数值错误!" End Select
(二) 语句执行的说明
1、 “测试表达式”——可以是数值型或字符串表 达 式。 程序运行时会判断哪个“表达式”与“测试表 达式”相符,若相符则执行“表达式”后面的语句 块。可见:这种程序结构与前面的带ElseIf子句的If语 句类似(多分支结构)。
多分支结构流程图
表达式1
True False
表达式2
VbCancel VbAbort VbRetry VbIgnore VbYes VbNo
例子:用InputBox函数输入一个正整数,若输入正 确,计算其平方根。
模态窗口——运行时,模态窗口挂起应用程序的 其他窗口操作,直到获得应答。
(三)MsgBox语句
1.格式:
MsgBox <prompt>
2.作用:只是向用户报告一个简短的信息, 没有返回值。
3.不要将赋值运算与代数方程式的概念混淆 x=x+1
二、输入框函数——InputBox函数 (一)InputBOX函数的格式 该函数用于为程序输入数据。其格式为:
InputBox ([prompt[,title][,default][,xpos,ypox][,helpfile,context]]
说明: prompt—输入的提示,长度≤1024个字符。输入时若 换行操作,则写出:Chr (13)+Chr (10) title—对话框标题。 default—输入的默认值。 xpos,ypox—对话框的坐标。 helpfile,context—帮助文件的名字,帮助目录号。
(二) 应用InputBOX函数的几个问题 1.有些参数可以省略,但是参数出现的位置和顺 序是固定的,用来分隔参数的逗号不能省略。 2.该函数返回的是字符串,若输入数值并参与计 算,需用Val( )函数将其转换为数值型。
3.Inputbox一旦被调用,用户必须响应,否则程 序一直处于等待状态,无法继续执行。 4.一个InputBOX对话框只能输入一个值,通常可 结合循环语句进行赋值。 5.对话框上的“确定”按钮用于确认;“取消”按 钮可使输入内容作废,返回一个空字符串。
例子:计算两个输入数据的和、差、积
Dim a As String Dim b As String Private Sub Form_Click() a = InputBox ("输入A的值") b = InputBox ("输入B的值") x = Val(a) y = Val(b) Print Print Print "两数之和="; x + y Print "两数之差="; x - y Print "两数之积="; x * y End Sub
(四)If语句的嵌套:
注意: 1、EndIf 总是与最接近的If配对。 2、为增强程序的可读性,书写代码时最好采用 锯齿形。
例 4.9 从键盘上输入三个整数,分别赋值给 变量x1,x2,x3比较它们的大小并重新排列,使得 x1>x2>x3。
二、情况语句(Select Case) ( 多分支结构)
语句格式的流程图见下图:
前一语句
条件
True False
语句
后续语句
例4.1 根据用户在消息框中单击的命令按钮, 决定是否结束程序的运行:
例4.2:在窗体上设置三个命令按钮,当点击其 中一个时,另两个即失效。
注意:
1、简单if语句关键字then之后只能在同一行上有语 句。所以不用加End If。否则换行之后的语句将被视 为在选择结构之后的语句。
将数值表达式按“格式控制符”制定的格式输出 例子: a=123456789 b=12/24 Print format (a,‖0000000000‖) ‗前面补0 Print format (a,‖###,###,###.00‖) ‗分节与小数点 Print format (b,‖%‖) ‗输出百分数 Print format (a,‖-#########‖) ‗输出负数 Print format (2345,‖####E+5‖) ‗输出浮点数
三、消息框MsgBox函数和MsgBox语句 MsgBox函数用于生成一个对话框,提示用户进 行选择操作。 (一)函数的格式 MsgBox (prompt[,buttons][,title][,helpfile,context]) 其中: prompt—对话框提示信息。 Title—显示对话框标题。 helpfile,context—帮助文件的名字,帮助目录号。 buttons—是一个整数或符号常量,用于控制对话框显 示的按钮,图标的种类和数量。它是由四类数值相加 产生。 注意:有些参数可以省略,但是参数出现的位置和 顺序是固定的,用来分隔参数的逗号不能省略。
Visual Basic程序包括三种基本结构: 顺序结构、 选择和分支结构、 循环结构。
退出
§ 4.1 顺序结构
顺序结构就是指:各个语句按出现的先后顺序依次 执行。
…
开始语句 语句1 语句2
……
结束语句
对于各种程序设计语言来说,顺序结构的语 句主要包含了赋值语句、输入/输出语句等等。
命令按钮
图标
VbDefaultButton1
默认按钮 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 强制返回 VbApplicationModel VSystemModel
0
256 512 768 0 4096
第一个按钮是默认值
第二个按钮是默认值 第三个按钮是默认值 第四个按钮是默认值 程序强制返回,直到用户作出响应。 系统强制返回,直到用户作出响应。
Байду номын сангаас
四、格式输出函数Format与Print方法
Format通常与Print方法配合使用
格式:Format (表达式[,格式控制符]) 说明: 表达式——要格式化输出的数值、日期或字符串类型 表达式 格式控制符——用来指定输出个实的字符串,格式字 符串必须用双引号括起来。
功能:按一定格式输出
(一)数值格式化
(二)函数的用途 在应用程序中,MsgBox的返回值一般用来作为继 续执行程序的依据,根据返回值决定后面的操作。 MsgBox函数的返回值
返回值 1 操作 选“确定”按钮 符号常量 VbOk
2 3 4 5 6 7
选“取消”按钮 选“终止”按钮 选“重试”按钮 选“忽略”按钮 选“是”按钮 选“否”按钮
程序流程见下图:
前一语句
条件
True False
语句1 后续语句
语句2
(三)if……then ……elseif语句(多分支结构) 1.语句格式
条件1 Then 语句块1 [Elseif 条件2 Then 语句块2] [Elseif 条件3 Then 语句块3] … … [Else 语句块n] End If
类别
符号常量
VbOKOnly VbOKCancel VbAbortRetrylgnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation Vbinformaation
值
0 1 2 3 4 5 16 32 48 64
显示按钮、图标
―确定”,按钮 ―确定”,“取消” 按钮 ―终止”,“重试”,“忽略”按钮 ―是”,“否”,“取消”按钮 ―是”,“否”按钮 ―重试”,“取消”按钮 Critical Message图标 Warning Query图标 Warning Message图标 Informaation Message图标
(二)日期和时间格式化
将日期类型的值或数值表达式以日期、时间的序 数值按“格式控制符”制定的格式输出。 (三)字符串格式化 将字符串按“格式控制符”制定的格式输出,主 要是字母大小写、字符串长度控制等处理。
§ 4.2 选择分支结构
使用条件语句实现选择结构
一、条件语句(if)
Visual Basic的选择结构程序是应用单分支, 双分支,多分支语句来实现的。
一、赋值语句
赋值语句由变量名、赋值运算符(=)和 某种类型的表达式组成。赋值语句的一般格式为: 变量=表达式 赋值语句有两个基本功能:对表达式进行计算 和保存表达式的值。 赋值语句被执行时:它先对赋值运算符右边的 表达式进行计算,然后将结果存储在运算符左边 的变量中。
若事先定义了变量的类型,变量的类型和表达式 计算结果的值必须相匹配。 (一)赋值号两边类型不一致时的处理规则:
If
2.语句功能 如果第k个条件表达式 (k=1,2,3… …)成立, 则执行语句块k(k=1,2,3… …), 否则执行语句块n。 其判断顺序为表达式1、表达式二……
多分支结构流程图
表达式1
True False
表达式2
True
False False
表达式n-1
True
语句块1
语句块2
语句块n-1
语句块n
3.注意: (1)无论有多少个分支,程序执行一个分支以 后,其余的分支便不再执行 (2)关键字ElseIf不能写成Else If
(3)当多分支中有多个表达式同时满足判断条 件时,则只执行第一个与之匹配的语句。
例4.8 根据输入的百分制成绩Score,转换成优、良、 中、及格、不及格5个等级,并在窗体上显示出来。 等级划分标准如下: 优 Score>=90 良 80<=Score<90 等级 = 中 70<=Score<80 及格 60<=Score<70 不及格 Score<60
(二)使用赋值语句时的注意事项: 1.“=‖的左边只能是变量名,不允许出现常量 和表达式。 Exp(2)=e^2 36=6^2 100=10*10
2.不允许在同一个赋值语句中为多个变量复 制(c语言允许) x1=x2=0 编译器将会把第一个=当成赋值符 号,而把第二个=当成比较运算符,把x2=0当作了 逻辑表达式。
2、判断表达式中如果出现“=‖,则视为关系运算符, 不视为赋值运算。
(二)if……then ……else 语句( 双分支) 1、语句格式:
If
条件 Then 语句块1 Else 语句块2 End If
语句1 Else 语句2
或
If 条件 Then 2、功能:
判断条件,若条件为真,执行语句块1;条件为 假,执行语句块2。即在两个语句块中选择一个。
(一)IF……then语句(单分支) 语句格式: 1、If <表达式> Then <语句体> 2、或:If <表达式> Then
语句块 End If
•表达式:一般为关系表达式、逻辑表达式,也可以 是算术表达式。表达式的值不为零则视为True,为 零则视为False。 语句块:一个或多个语句。若用1的简单形式,则语 句块只能是单个语句。 功能:判断条件,为真则执行语句体;否则执行后 面的语句。
Visual Basic语言中,多分支结构也是可 以通过情况语z实现的。
(一)情况语句的格式 Select Case <测试表达式> Case <表达式列表1> 语句块1 Case <表达式列表2> 语句块2 …… Case <表达式列表n> 语句块n Case Else 语句块n+1 End Select
1.当左右均为数值类型时,右边表达式的精度与左 边变量精度不同时,强制转换成左边变量的精度。 2.当右边表达式是数字字符串,左边变量是数值类 型时,自动转换成数值类型再进行赋值。但如果表达 式中有非数字字符或空字符串时,就会出错。
3.当逻辑表达式复制给数值类型时,true转换为-1, false转换为0; 反之,当数值类型转换为逻辑类型时,非0转换为 true,0转换为false。 4.任何非字符类型赋值给字符类型时,均自动转换 为字符类型。
True
False False
表达式n-1
True
语句块1
语句块2
语句块n-1
语句块n
2、<表达式列表>有三种描述形式 第一:可以是单值常量(数值或字符串), 当用“,”分割各个常量时,是“或”的逻辑 关系 Month = InputBox("输入月份数:") Select Case Month Case 1, 3, 5, 7, 8, 10, 12 x = "本月有31天。" Case 4, 6, 9, 11 x = "本月有30天。" Case 2 x = "本月有28天。" Case Else x = "输入数值错误!" End Select
(二) 语句执行的说明
1、 “测试表达式”——可以是数值型或字符串表 达 式。 程序运行时会判断哪个“表达式”与“测试表 达式”相符,若相符则执行“表达式”后面的语句 块。可见:这种程序结构与前面的带ElseIf子句的If语 句类似(多分支结构)。
多分支结构流程图
表达式1
True False
表达式2
VbCancel VbAbort VbRetry VbIgnore VbYes VbNo
例子:用InputBox函数输入一个正整数,若输入正 确,计算其平方根。
模态窗口——运行时,模态窗口挂起应用程序的 其他窗口操作,直到获得应答。
(三)MsgBox语句
1.格式:
MsgBox <prompt>
2.作用:只是向用户报告一个简短的信息, 没有返回值。
3.不要将赋值运算与代数方程式的概念混淆 x=x+1
二、输入框函数——InputBox函数 (一)InputBOX函数的格式 该函数用于为程序输入数据。其格式为:
InputBox ([prompt[,title][,default][,xpos,ypox][,helpfile,context]]
说明: prompt—输入的提示,长度≤1024个字符。输入时若 换行操作,则写出:Chr (13)+Chr (10) title—对话框标题。 default—输入的默认值。 xpos,ypox—对话框的坐标。 helpfile,context—帮助文件的名字,帮助目录号。
(二) 应用InputBOX函数的几个问题 1.有些参数可以省略,但是参数出现的位置和顺 序是固定的,用来分隔参数的逗号不能省略。 2.该函数返回的是字符串,若输入数值并参与计 算,需用Val( )函数将其转换为数值型。
3.Inputbox一旦被调用,用户必须响应,否则程 序一直处于等待状态,无法继续执行。 4.一个InputBOX对话框只能输入一个值,通常可 结合循环语句进行赋值。 5.对话框上的“确定”按钮用于确认;“取消”按 钮可使输入内容作废,返回一个空字符串。
例子:计算两个输入数据的和、差、积
Dim a As String Dim b As String Private Sub Form_Click() a = InputBox ("输入A的值") b = InputBox ("输入B的值") x = Val(a) y = Val(b) Print Print Print "两数之和="; x + y Print "两数之差="; x - y Print "两数之积="; x * y End Sub
(四)If语句的嵌套:
注意: 1、EndIf 总是与最接近的If配对。 2、为增强程序的可读性,书写代码时最好采用 锯齿形。
例 4.9 从键盘上输入三个整数,分别赋值给 变量x1,x2,x3比较它们的大小并重新排列,使得 x1>x2>x3。
二、情况语句(Select Case) ( 多分支结构)
语句格式的流程图见下图:
前一语句
条件
True False
语句
后续语句
例4.1 根据用户在消息框中单击的命令按钮, 决定是否结束程序的运行:
例4.2:在窗体上设置三个命令按钮,当点击其 中一个时,另两个即失效。
注意:
1、简单if语句关键字then之后只能在同一行上有语 句。所以不用加End If。否则换行之后的语句将被视 为在选择结构之后的语句。
将数值表达式按“格式控制符”制定的格式输出 例子: a=123456789 b=12/24 Print format (a,‖0000000000‖) ‗前面补0 Print format (a,‖###,###,###.00‖) ‗分节与小数点 Print format (b,‖%‖) ‗输出百分数 Print format (a,‖-#########‖) ‗输出负数 Print format (2345,‖####E+5‖) ‗输出浮点数
三、消息框MsgBox函数和MsgBox语句 MsgBox函数用于生成一个对话框,提示用户进 行选择操作。 (一)函数的格式 MsgBox (prompt[,buttons][,title][,helpfile,context]) 其中: prompt—对话框提示信息。 Title—显示对话框标题。 helpfile,context—帮助文件的名字,帮助目录号。 buttons—是一个整数或符号常量,用于控制对话框显 示的按钮,图标的种类和数量。它是由四类数值相加 产生。 注意:有些参数可以省略,但是参数出现的位置和 顺序是固定的,用来分隔参数的逗号不能省略。