620 likes | 756 Views
第 4 章 VB 控制结构. 4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 综合应用 4.6 程序调试. a. A. B. b. VB 具有结构化程序设计的三种程序控制结构,即 顺序结构 、 选择结构 、 循环结构 ,是程序设计的基础。. ( 1 )顺序结构 各语句按出现的先后次序执行。. 用传统流程图表示为. 本章目录. a. 成立. 不成立. 条件?. A. B. b. ( 2 )选择结构. 根据条件决定执行的语句。. 传统流程图 :.
E N D
第4章 VB控制结构 4.1 顺序结构 4.2 选择结构 4.3 循环结构 4.4 其它辅助控制语句 4.5 综合应用 4.6 程序调试
a A B b VB具有结构化程序设计的三种程序控制结构,即顺序结构、选择结构、循环结构,是程序设计的基础。 (1)顺序结构 各语句按出现的先后次序执行。 用传统流程图表示为 本章目录
a 成立 不成立 条件? A B b (2)选择结构 根据条件决定执行的语句。 传统流程图: 本章目录
a a 不成立 条件? 循环体 成立 循环体 条件? 不成立 成立 b b (3)循环结构 根据条件重复执行语句(称为循环体)。 I 当型循环结构 II 直到型循环结构 本章目录
4.1 顺序结构 • 一般程序设计语言中顺序结构的语句主要有赋值语句和 输入/输出语句等。 • 在VB中赋值语句和输入/输出通过: • 文本框控件、标签控件 • InputBox函数、MsgBox函数和过程 • Print方法等来实现。 本章目录
4.1.1 赋值语句 4.1 顺序结构 形式: 变量名=表达式 [对象名.] 属性名=表达式 功能:计算表达式的值,再将此值赋给变量或对象属性。 例如: n = n + 1 '计数累加 Text1.Text = "" ' 清除文本框的内容 Text1.Text = "欢迎使用VB " ' 文本框显示字符串 本章目录
赋值语句注意事项: 4.1 顺序结构 • “=”既是赋值运算符,也是关系运算符。 • 赋值运算符左边只能是变量,不能是常量、常数符号、表达式。 下面均为错误的赋值语句: • Now()=x+y '左边是表达式(函数) • 5=sqr(s)+x+y ' 左边是常量 • X+y=z ' 左边是表达式 本章目录
赋值运算符两边数据类型不同时的处理: 4.1 顺序结构 • 当表达式为数值型并与变量精度不同时,需强制转换成左边变量的精度。 • 例 n%=3.5 'n为整型变量,四舍五入,n=4 • 当表达式为数字字符串,左边变量是数值类型,自动转换成数值类型再赋值。如果表达式有非数字字符或空串,则出错。 • 例 n%="123" 'n=123 本章目录
4.1 顺序结构 • 当逻辑型数值赋值给数值型变量时,True转换为-1,False转换为0;反之当数值付给逻辑型变量时,非0转换为True,0转换为False。 • 任何非字符型的值赋值给字符型变量自动转换为字符型。 本章目录
4.1.2 数据输出和输入 4.1 顺序结构 1. InputBox函数 功能:打开一个对话框,等待用户输入,返回字符串类型的输入值。 形式:InputBox(提示[,标题][,默认值][,x坐标位置][,y坐标位置]) 本章目录
4.1 顺序结构 注意: 提示项不能省略,若要多行提示,可在每行行末加回车换行vbCrLf。 例4.1利用InputBox输入基本工资和营业额,按营业额的5%提成,计算实发工资并显示。 本章目录
2. MsgBox函数和MsgBox过程 4.1 顺序结构 打开一个信息框,等待用户选择一个按按钮。 MsgBox函数形式: 变量[%] = MsgBox(提示[,按钮][,标题]) MsgBox函数返回所选按钮的值。 本章目录
4.1 顺序结构 MsgBox过程形式: MsgBox 提示[,按钮][,标题] MsgBox过程不返回值。 例如: i=MsgBox("密码错误",5+vbExclamation,"警告") MsgBox"账号必须为数字", , "警告" 本章目录
MsgBox按钮设置 分组 内 部 常 数 值 描 述 按钮 数目 VBOkOnly 0 确定按钮 VBOkCancel 1 确定、取消按钮 VBAboutRetryIgnore 2 终止、重试、忽略按钮 VBYesNoCancel 3 是、否、取消按钮 VBYesNo 4 是、否按钮 VBRetryCancel 5 重试、取消按钮 图标 类型 VBCritical 16 关键信息图标 VBQuestion 32 询问信息图标 VBExclamation 48 警告信息图标 VBInformation 64 信息图标 默认 按钮 VBDefaultButton1 0 第1个按钮为默认 VBDefaultButton2 56 第2个按钮为默认 VBDefaultButton3 512 第3个按钮为默认 本章目录
MsgBox所选按钮返回值 例4.2编一账号和密码输入的检验程序,当输入不正确,如账号为非数字字符,密码不正确等,显示有关信息,再输入。 本章目录
3. Print方法 4.1 顺序结构 作用: 在对象上输出信息。 对象.Print[Spc(n)|Tab(n)][输出列表 ][;|,] 对象:窗体、图形框或打印机,缺省为窗体。 Spc(n)函数:从当前位置起空n个空格。 Tab(n)函数:从最左端开始计算的第n列。 分号:定位在上一个被显示的字符之后。 逗号:定位在下一个打印区开始处(每区14列)。 Print语句尾无分号或逗号,输出后换行。 本章目录
4.1 顺序结构 • 例4.3 Print方法输出图形。 • 利用String函数显示重复字符 • 利用循环结构、Spc、Tab函数显示有规律图形 本章目录
4. Format格式输出函数 4.1 顺序结构 形式: Format (表达式[, "格式字符串"]) 表达式:数值、日期和字符串类型表达式。 格式字符串有三类: 数值格式、日期格式和字符串格式,格式字符串两旁要加双引号。 本章目录
符号 作 用 表达式 格式字符串 显示结果 0 用0填充不足的位置 1234.567 "00000.0000" 01234.5670 # 位置不足时不填充0 1234.567 "#####.####" 1234.567 , 千分位 1234.567 "##,##0.000" 1,234.567 % 数值乘以100,加百分号 1234.567 "####.##%" 123456.7% $ 在数字前强加$ 1234.567 "$###.##" $1234.57 E+ 用指数表示 1234.567 "0.00E+00" 1.23E-01 4.1 顺序结构 常用数值格式化符号及举例 例4.4 利用Format函数显示数值。 本章目录
4.2 选择结构 本章目录
4.2 选择结构 时间来不及 N Y 去教学楼 去食堂 去教学楼 算法简单描述: if (时间来不及) 去教学楼; else { 去食堂; 去教学楼; } 本章目录
4.2 选择结构 N 时间来得及 Y 去食堂 去教学楼 如果判断时间来得及呢? 算法的简单描述: if (时间来得及) 去食堂; 去教学楼; 本章目录
4.2 选择结构 • 计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。 • 必须利用选择结构等来解决实际应用中的各种问题。 • VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。 本章目录
4.2.1 If条件语句 4.2 选择结构 1. If…Then语句(单分支结构) If <表达式> Then 语句块(可以是一句或多句语句) End If 或 If <表达式> Then <语句> 表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进行判断。 本章目录
4.2 选择结构 得到变量值 数值运算 输出结果 例4.5:从键盘输入两个数,求这两个数中的大者,并输出最大值。 分析: 变量定义 本章目录
4.2 选择结构 演示 例4.6:从键盘输入两个数x和y,如果x大于y则x与y的值互相交换,并输出。 本章目录
4.2 选择结构 If x>y Then t=x x=y y=t End If 或 If x<y Then t=x: x=y: y=t 简单If形式无End If时,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。 本章目录
4.2 选择结构 2. If…Then…Else语句(双分支结构) If表达式 Then 语句块1 Else 语句块2 End If 或 If 表达式 Then 语句1 Else 语句2 当表达式的值为True时,执行Then后面的语句块1,否则执行Else后面的语句块2 本章目录
4.2 选择结构 x ≠ 0 x=0 例4.7:计算分段函数 单分支结 构 y=cos(x)-x^3+3*x If x<>0 Then y=sin(x)+sqrt (x*x+1) If x<>0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)-x^3+3*x End If 双分支结 构 本章目录
4.2 选择结构 3. If…Then…ElseIf 语句(多分支结构) If表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 … [Else 语句块 n+1] End If 作用:根据不同的表达式值确定执行哪个语句块 本章目录
4.2 选择结构 例4.8 已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。 If UCase(ch) >= "A" And UCase(ch) <= "Z" Then MsgBox(ch + "是字母字符") '考虑大小写字母 ElseIf ch >= " 0" And ch <= "9" Then ' 数字字符 MsgBox(ch + "是数字字符") Else ' 除上述字符以外的字符 MsgBox(ch + "是其它字符") End If 本章目录
4.2 选择结构 不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。 ElseIf不能写成 Else If 本章目录
4.2 选择结构 4. If语句的嵌套 If表达式1 Then If 表达式2 Then … End If … End If 本章目录
4.2 选择结构 例4.9:输入一个考生总分数和英语分数,判断是否被录取为研究生,录取条件为:总分达到350分,英语达到60分。 If score>=350 then If english>=60 then Msgbox "被录取" Else: Msgbox "没被录取" End If Else Msgbox "没被录取" End If 本章目录
4.2.2 Select Case语句 4.2 选择结构 Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 表达式列表2 语句块2 … [Case Else 语句块n+1] End Select • 表达式列表与变量或表达式的类型必须相同,是下面4种形式之一 : • 表达式 例: "A" • 一组用逗号分隔的枚举值 2,4,6,8 • 表达式1 To 表达式2 60 To 100 • Is 关系运算符表达式 Is < 60 本章目录
4.2 选择结构 例4.8改用 Select Case 语句实现: Select Case ch Case "a" To "z","A" To "Z" MsgBox( ch + "是字母字符") Case "0" To "9" MsgBox (ch +"是数字字符") Case Else MsgBox( ch + "是其他字符") End Select 本章目录
4.2 选择结构 例4.10判断坐标点(x,y),落在哪个象限。 代码二 Select Case x,y Case x > 0 And y > 0 MsgBox("在第一象限") Case x < 0 And y > 0 MsgBox("在第二象限") Case x < 0 And y < 0 MsgBox("在第三象限") Case x > 0 And y <0 MsgBox("在第四象限") End Select 代码一 If x > 0 And y >0 Then MsgBox("在第一象限") ElseIf x < 0 And y > 0 Then MsgBox("在第二象限") ElseIf x < 0 And y < 0 Then MsgBox("在第三象限") ElseIf x > 0 And y <0 Then MsgBox("在第四象限") End If 代码二错误: 1. Select Case 后不能出现多个变量 2. Case后不能出现变量及有关运算符 本章目录
4.2.3 条件函数 4.2 选择结构 (1) IIf函数 IIf(表达式,表达式为真时的值,表达式为假时的值) 例如,将x,y中大的数,放入Tmax变量中: Tmax = IIf(x > y,x,y) 该语句与如下语句等价 : If x > y Then Tmax = x Else Tmax = y 本章目录
4.2 选择结构 Dim nop As Integer, op As Char Randomize() nop = Int(Rnd() * 4 + 1) op = Choose(nop, "+", "-", "×", "÷") MsgBox("nop=" & nop & " op=" & op) (2) Choose函数 Choose(整数表达式,选项列表) 根据表达式的值i,返回选项列表中第i个选项。如果整数表达式的值越出选项范围时,返回Null。 例 根据nop的值,得到+、-、×、÷中的某运算符: op= Choose(nop,"+","-","×","÷") 本章目录
例:求 。 分析:1. 需要累加的项是i2 2. 累加到变量s中3. i变量在1~20间变化4. 需要采用循环结构 本章目录
4.3 循环结构 • 计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。 • 这类问题都可通过循环结构来方便地实现。VB中提供了主要两类循环语句: • For循环语句(一般已知循环次数); • Do条件型循环语句(一般未知循环次数). 本章目录
4.3.1 For循环语句 4.3 循环结构 For循环变量 =初值To 终值[Step 步长] 语句块 [Exit For] 语句块 Next循环变量 循环变量必须为数值型。 >0 初值<终值 <0 初值>终值 =0 死循环 步长 循环次数 本章目录
例:求 。 4.3 循环结构 Dim i%, s% s = 0 For i = 1 To 20 Step 1 s = s + i * i Next i MsgBox "s=" & s 本章目录
4.3.2 Do…Loop循环语句 4.3 循环结构 形式1: Do { While|Until }<条件> 语句块 [Exit Do 语句块] Loop 形式2: Do 语句块 Exit Do 语句块] Loop { While|Until} <条件> 本章目录
Do…Loop流程 4.3 循环结构 本章目录
4.3 循环结构 例4.11 我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。 解此问题两种方法,可根据公式: 直接利用标准函数对数可求得,但求得的年数不为整数;也可利用循环求得 。 本章目录
4.3.3 循环的嵌套 4.3 循环结构 在一个循环体内又包含了另一个完整的循环结构称为循环的嵌套。 例4.12 打印九九乘法表 思考:打印上三角或下三角程序如何改动? 本章目录
4.4 其它辅助控制语句 1. Exit语句 VB中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下: Exit For、Exit Do、 Exit Sub、Exit Function 2. End语句 独立的End语句用于结束一个程序的运行,它可以放在任何事件过程中。 本章目录