charpter5 程序的基本控制结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
(4) If语句的嵌套 语句的嵌套
If语句允许嵌套。所谓嵌套,就是指If语句的分支程序段中 语句允许嵌套。所谓嵌套,就是指 语句的分支程序段中 语句允许嵌套 又可以出现If语句 甚至重重嵌套下去。 语句, 又可以出现 语句,甚至重重嵌套下去。 [例]对3个数大小的判断可以用下面的结构来表达,核心语 例 对 个数大小的判断可以用下面的结构来表达 个数大小的判断可以用下面的结构来表达, 句如下: 句如下:
4. unload 语句
unload <对象名 对象名> 对象名 程序执行结束, 程序执行结束,把窗体和控件从内存中卸载
8
5. Date语句 语句
Date= <日期表达式 日期表达式> 日期表达式 设置系统日期 日期型表达式可以是日期型常量、变量、 日期型表达式可以是日期型常量、变量、函数以及表达式 Print Date ‘输出当前系统日期 输出当前系统日期 Date=“06/20/2006” ‘重置系统日期为 重置系统日期为2006-06-20 重置系统日期为 Date=date+30
14
(3)多分支 语句 )多分支If语句
第 七 章
If <条件表达式 Then 条件表达式1> 条件表达式 <语句段 语句段1> 语句段 [Else If <条件表达式 Then 条件表达式2> 条件表达式 <语句段 语句段2>] 语句段 [Else If <条件表达式 Then 条件表达式3> 条件表达式 <语句段 语句段3>] 语句段 … [Else <语句段 语句段n>] ] 语句段 End If
第 七 章
6. Time 语句
Time= <系统时间 系统时间> 系统时间 设置系统时间, 设置系统时间, 系统时间可以是时刻的数值表达式、 系统时间可以是时刻的数值表达式、字符串表达式及其组合 Time=#9:30:00 PM# ‘设置系统时间为下午 :30 设置系统时间为下午9: 设置系统时间为下午 Time=#9:30:00 AM#
例如:输出 两个中值较大的一个值 两个中值较大的一个值。 例如:输出x,y两个中值较大的一个值。 IF X>Y Then Print X 第 七 章 Else Print Y End If 也可以写成如下的单行形式: 也可以写成如下的单行形式: IF X>Y Then Print X Else Print Y
第 七 章
(3)不存在死循环 )
4
个数, 例:输入10个数,打印输出其中的最大的数的流程图 输入 个数
开始 输入A Max =A N=1
第 七 章
N
N<10
Y
再输入给A A>Max
N
Y
Max =A
打印Max
N=N+1
结束
5
上例的计算机程序可以表示为 Private Sub Form_Click() Dim a%, max%, i% a = Val(InputBox("A=?")) max = a For i = 2 To 10 a = Val(InputBox("A=?")) If a > max Then max = a Next i Print "Max="; max End Sub
第五章
Visual BASIC Visual BASIC
程 序 设 计
:选择结构的 :选择的
1
程序控制结构
本章内容及要求: 本章内容及要求: 1. 熟练掌握行if语句、块if结构 熟练掌握行if语句、 if结构 if语句 结构; 2. Select Case情况选择结构的使用 Case情况选择结构的使用; 情况选择结构的使用 3. 掌握选择的 结构
第 七 章
7
2. REM 语句
Rem <注释内容 注释内容> 注释内容 Dim a As Variant Dim c As String Dim b As Single
: Rem 定义字符串变量 '定义单精度型变量 定义单精度型变量
第 七 章 3. load 语句
load <对象名 对象名> 对象名 加载窗体和控件
11
1. IF语句 语句 (1)单行结构条件语句 )
If <条件表达式 Then <语句组 [Else <语句组 条件表达式> 语句组1> 语句组2>] 条件表达式 语句组 语句组 当在单行结构中, 后可以描述多条语句, 注:当在单行结构中,Then和Else后可以描述多条语句, 当在单行结构中 和 后可以描述多条语句 但所有语句必须在同一行上并且用冒号分开 [例]变量 的值大于 时,分别对变量 、b、c进行赋值。 例 变量 的值大于10时 分别对变量a、 、 进行赋值 变量a的值大于 进行赋值。 If a > 10 Then a = a + 1 : b = b + a : c = c + b [例]求两个数中的最大值: 例 求两个数中的最大值 求两个数中的最大值: If a > b Then max = a Else max = b
If a > b Then If a > c Then max = a Else max = c End If Else If b>c Then max = b Else max=c End If End If
18
第 七 章
2. Select Case语句(情况语句) 语句(情况语句) 语句
形式: 形式: Select Case 数值|字符串表达式 数值| Case <值的列表 值的列表1> 值的列表 [<程序段 程序段1>] 程序段 Case <值的列表 值的列表2> 值的列表 [<程序段 程序段2>] 程序段 … [Case <值的列表 值的列表n> 值的列表 [<程序段 程序段n>]] 程序段 [Case Else <程序段 程序段n+1>] 程序段 End Select
第 七 章
12
(2)块结构条件语句 )
第 七 章
If <条件表达式 Then 条件表达式> 条件表达式 <程序段 程序段1> 程序段 [Else <程序段 >] 程序段2 程序段 EndIf
[说明 <条件表达式 一般是关系表达式或逻辑表达式,描 说明] 条件表达式 一般是关系表达式或逻辑表达式, 说明 条件表达式>一般是关系表达式或逻辑表达式 述一定的判断条件。可以把If语句理解成一个两路分支结 述一定的判断条件。可以把 语句理解成一个两路分支结 构,执行哪一路分支完全依据条件表达式的结果而定:当 执行哪一路分支完全依据条件表达式的结果而定: <条件表达式 的值为 条件表达式>的值为 程序段1>; 条件表达式 的值为True时,执行 程序段 ;当<条件表 时 执行<程序段 条件表 达式>的值为 的值为False时,执行 程序段 。子句 程序段2>。子句Else作为两路 达式 的值为 时 执行<程序段 作为两路 分支的分隔符。不管执行哪一路分支,执行完后将跳出If 分支的分隔符。不管执行哪一路分支,执行完后将跳出 语句,去执行子句End If后相邻的语句。用方括号括起的 后相邻的语句。 语句,去执行子句 后相邻的语句 Else及<程序段 可以没有,这样,当<条件表达式 不成 程序段2>可以没有 条件表达式>不成 及 程序段 可以没有,这样, 条件表达式 立时,程序什么也不做就直接跳出If语句 语句。 立时,程序什么也不做就直接跳出 语句。 13
及
用
5.1 程序控制结构类型
1. 顺序结构 2. 选择结构
第 七 章
语句1
Y 语句1
条件NBiblioteka 语句2语句223. 循环结构 a) 当型循环 b) 直到循环
第 七 章
条件 Y 语句组
N 语句组 Y 条件 N
(a)
(b)
3
三种基本结构的特点: 三种基本结构的特点:
(1)只有一个入口 ) (2)只有一个出口 )
第 七 章
的条件成立( ),从各实际可能 的条件成立(True)或不成立(False),从各实际可能 )或不成立( ), 的不同分支中执行某一分支的相应操作(程序块), ),并且 的不同分支中执行某一分支的相应操作(程序块),并且 任何情况下总有“无论条件多寡,必择其一; 任何情况下总有“无论条件多寡,必择其一;虽然条件众 仅选其一”的特性。 多,仅选其一”的特性。
19
第 七 章
第 七 章
说明: 说明: 进入Select Case语句后,先计算 数值 字符串表达式 的 语句后, 数值|字符串表达式 ①进入 语句后 先计算<数值 字符串表达式>的 然后将该值与第1个 子句后的<值的列表 值,然后将该值与第 个Case子句后的 值的列表 中的 子句后的 值的列表1>中的 值比较,不相等则再往下比较,如果与某一个Case子句 值比较,不相等则再往下比较,如果与某一个 子句 中列表的值相等,那么就去执行该子句下的程序段, 中列表的值相等,那么就去执行该子句下的程序段,执 行完毕后跳出Select Case语句子句,而不管下面的 语句子句, 行完毕后跳出 语句子句 而不管下面的Case子 子 句中是否还有匹配的值。 句中是否还有匹配的值。 表达式必须是数值表达式或者字符串表达式, ②表达式必须是数值表达式或者字符串表达式,其值为数 字或者字符串。与此对应, 字或者字符串。与此对应,Case子句后面列表中值的类 子句后面列表中值的类 型也必须与表达式结果的类型一致。 型也必须与表达式结果的类型一致。
第 七 章
6
5.2 程序中常用的基本语句 1. Let 语句
[Let]<变量名 变量名>=<表达式 表达式> 变量名 表达式 表达式值的类型应与变量声明的数据类型一致
Private Sub Form_Click() Dim a As Variant Dim c As String Dim b As Single Let c = "efg" Let b = 0.000314 a=c '将字符串变量赋值给变体型变量 将字符串变量赋值给变体型变量 Print a '输出 输出efg 输出 a=b '将数值变量赋值给变体型变量 将数值变量赋值给变体型变量 Print a + 1 '输出 输出1.000314 输出 c=a '将变体型变量赋值给字符串变量 将变体型变量赋值给字符串变量 Print c + "abc" '输出 输出1.000314abc 输出 a = "abc" b=a '将不能转换成数的变体型变量赋值给数值变量,错误 将不能转换成数的变体型变量赋值给数值变量, 将不能转换成数的变体型变量赋值给数值变量 Print b '显示“类型不匹配错误” 显示“ 显示 类型不匹配错误” End Sub
15
多分支结构流程图
第 七 章
16
个百分制成绩, 例:任意输入1个百分制成绩,输出该分数对应的级别: 任意输入 个百分制成绩 输出该分数对应的级别: 90≤分数 分数≤100,输出“优”;80≤分数 分数<90,输出“良”;70≤ 分数 ,输出“ 分数 ,输出“ 分数<80,输出“中”;60≤分数 分数<70,输出“差”;分数 分数<60, 分数 ,输出“ 分数 ,输出“ , 输出“不及格” 分数< 或分数 或分数> ,则输出“输入有误” 输出“不及格”;分数<0或分数>100,则输出“输入有误”。
第 七 章
Private Sub Form_Click() Dim score As Integer score = InputBox("score = ", "input") If score < 0 or score > 100 Then MsgBox ("输入有误 输入有误") 输入有误 ElseIf score < 60 Then MsgBox ("不及格 不及格") 不及格 ElseIf score < 70 Then MsgBox ("差") 差 ElseIf score < 80 Then MsgBox ("中") 中 ElseIf score < 90 Then MsgBox ("良") 良 Else MsgBox ("优") 优 End If End Sub
10
5.3 选择结构程序设计
选择结构是根据条件选择执行不同的分支语句, 选择结构是根据条件选择执行不同的分支语句,以完成 问题的要求。 程序设计中, 问题的要求。在Visual Basic程序设计中,使用 语句和 程序设计中 使用IF语句和 Select Case语句来处理选择结构。其特点是:根据所给定 语句来处理选择结构。 语句来处理选择结构 其特点是:
9
7. Stop 语句
Stop 暂停执行
8. End 语句 第 七 章
End 结束一个过程或块。 结束一个过程或块。 停止执行,关闭代码执行以及以Open语句打开的文件并且 停止执行,关闭代码执行以及以 语句打开的文件并且 清除变量
9. Exit 语句
Exit do/for/function/sub 退出Do……Loop、For……Next、Function、Sub代码块 退出 、 、 、 代码块