




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 5 章 程序控制结构,顺序结构 分支结构 循环结构,51 控制结构的流程图表示,511 流程图 用于描述结构化程序的图形。,5.1.2 控制结构的流程图表示,一、顺序结构,语句A,语句B,三种结构中最基本的结构,由一串按顺序排列的语句组成。运行时,按语句出现的先后次序执行,例如从语句A顺序执行到语句B。,二、选择结构,选择结构(又称分支结构) ,通过“条件”判断后进行分支,满足条件时执行语句A,否则(不满足条件时)执行语句B。,三、循环结构,循环结构通过“条件”判断,满足条件时重复执行循环体语句(一条语句或多条语句),不满足条件时跳出循环(出口)。,三种基本结构的共同特点是: (1) 只有
2、单一的入口和单一的出口; (2) 结构中的每个部分都有被执行的可能; (3) 结构内不应出现永不终止的死循环; VB语言完全支持结构化的程序设计方法,并提供了相应的语言成分。,5.2 算法,在计算机学科中,算法指的是用于完成某个处理任务的一组有序而明确的、可以由计算机执行的操作(或指令),它能在有限时间内执行结束并产生结果。 算法的特征 (1)确定性 确定性是指算法中的每个步骤必须确切无误,即每一步运算应该执行何种操作必须是清楚明确的,无二义性。 (2)有穷性 有穷性是指一个算法经有限步运算后能够终止。 (3)可行性 可行性是指算法的每个步骤都是计算机可以执行的,并能得到确定的结果。 (4)输
3、出性 一个算法可以没有输入,但至少要有一个输出。,5. 2. 3 算法的表示,1文字表示 2流程图表示 3程序语言表示,5.3 顺序结构,赋值语句: 其格式如:var = Var表示某个变量名或属性名,不能是常量,常熟符号或表达式。 先计算“=”右边表达式的值,然后将值赋给“=”左边的变量。 “=”在条件表达式中为等号,否则为赋值号 经常使用的赋值语句: Sum=sum+x 累加 X=x+1 计数 不能在一条语句中同时给多个变量赋值,赋值语句中数据类型不同时的处理方法: 变量的数据类型与表达式的数据类型同为数值型,但精度不同时,VB会将表达式的精度强制转换成变量的精度。 变量的数据类型为数值型
4、,表达式的数据类型为字符型时,自动转换成数值类型再赋值,但当字符中有非数字字符或表达式为空串时,则出错。 变量的数据类型为数值型,表达式的数据类型为逻辑型时,True转换为-1,False转换为0。反之,非0转换为True,0转换为False。 变量的数据类型为字符型,表达式的数据类型为非字符型时,会自动转换成字符型。,【例5.1】运行下面程序,单击窗体,则立即窗口显示的结果是什么? Private Sub Form_Click() Dim a As Integer, b As Boolean Dim c As Integer, d As Integer a = 10 / 4: b = Tru
5、e: c = b: d = a + c Debug.Print a, d, a = a + c End Sub 分析:10/4的结果是2.5,赋给整型变量a,根据奇进偶不进原则,a的值为2。True赋给整型变量c,转换为-1,从而变量d的结果为2 1 = 1。由于a的值为2,a + c的值为1,所以a = a + c的结果为False。立即窗口显示的结果是: 2 1 False,5.4 选择结构,选择结构又叫分支结构。程序在运行到分支结构的语句块时,可以根据条件的不同,选择不同的执行方向。 If 语句 select case 语句,5.4.1 IF条件语句,单分支: If Then 语句组 E
6、nd If 双分支: If Then 语句组A Else 语句组B End If 多分枝: If Then 语句组1 ElseIf Then 语句组2 ElseIf Then 语句组n Else 语句组n+1 End If,3If语句的嵌套 【例5.3】设有如下函数: 从键盘输入x的值,要求输出y的值。,Private Sub Form_Click() Dim x As Single, y As Single x = InputBox(请输入x的值:) If x 0 Then y = 1 Else If x = 0 Then y = 0 Else y = -1 Print x=; x, y=;
7、 y End Sub,5.4.2 条件函数(IIf函数),VB提供了一个IIf函数,可用来简化“If Then Else”分支结构。 一般形式为: Var = IIf(条件表达式,True部分,False部分),注意: IIf函数中的3个参数都不能省略,而且要求“True部分”、“False部分”与结果变量的类型一致。,iif 函数与“If Then Else”语句或“Select Case”语句(见下一节)的作用类似。,If x0 Then y = 1 Else y = - 1 End If,y = IIf(x0,1,- 1),5.4.3 Select Case语句,Select Case语
8、句也能实现多分支,其基本格式为: Select Case 测试表达式 Case 表达式表列1 语句块1 Case 表达式表列2 语句块2 Case Else 语句块n End Select,其中: “变量或表达式”可以是数值表达式或字符串表达式,也可以是一个常量或一个变量。 “表达式表列i”可以是以下三种情况之一或三种情况的混合。 (1) 以逗号隔开的常量 例如:Case 1,4,7 Case a ,b “ (2) 由关键字To连接的两个常量,表示一个闭区间。不论是数值型还是字符串数据,都要保证To前面的常量比后面的小。 例如:Case 1 To 10 Case a To f ,(3) 由关键
9、字is表示的一个关系表达式。is是一个代词,它代表着“变量或表达式”的值。如:Case is 15。但Case is 15 And is 30是错误的。 (4) “表达式表列i”的数据类型要与“变量或表达式”的类型相同。,5.5 循环结构,在VB中,实现循环结构的语句有两种,一种是For循环控制结构,另一种是Do循环控制结构。 For循环 Do循环,5.5.1 For循环控制结构,For var = a To b Step c 语句组 Exit For 语句组 Next var var称为循环变量,其值必须为数值型 a称为循环初值,b称为循环终值, c称为循环步长。 Exit For表示当遇到
10、该语句时 退出循环,执行Next后的下一条语句。 Next的含义是循环变量的值增加 一个步长(var = var + c),开始下一次循环。,For循环语句的执行过程是: (1) 计算初值表达式a、终值表达式b、步长表达式c的值。 (2) 循环变量赋初值。 (3) 比较循环变量与终值的值。 当步长为正时,若循环变量的值小于或等于终值(步长为正的循环流程如图5.14所示),转去第(4)步,否则执行Next后的下一条语句; 当步长为负时,若循环变量的当前值大于或等于终值(步长为负的循环流程如图5.15所示),转去第(4)步,否则执行Next后的下一条语句。 (4) 执行一次循环体,然后将循环变量的
11、值增加一个步长,转到第3步,重复执行。,说明: 无论循环执行与否,循环变量赋初值语句都会被执行,且仅执行一次。 若初值小于终值,则步长为1时,Step 1可以省略;但若初值大于终值,而步长为-1时,Step 1不可以省略。 循环的次数可用以下公式计算: 循环次数=Int(b a)c)+1 For语句和Next语句必须成对出现,不能单独使用,且For语句必须在Next语句之前。 循环的初值、终值以及步长的值一经确定,则循环的执行次数就不再改变。在循环体中,改变初值、终值以及步长的值,不影响循环的执行次数。若在循环体中改变循环变量的值,则有可能影响循环的执行次数。 当退出循环后,循环变量的值保持退
12、出时的值。,【例5.10】求n!(n为自然数) 由阶乘的定义可知: n! = 1* 2* 3*(n-1)*n = (n-1)!*n,Private Sub Form_Click() Dim N As Integer, i As Integer, k As Single N = InputBox(输入N:) k = 1 For i = 1 To N k = k * i 此语句称为累乘器 Next i Print N; ! = ; k End Sub,Private Sub Form_Click() Dim N As Integer, i As Integer, m As Integer, k A
13、s Single N = InputBox(输入N:) k = 1:m = 1 For i = 1 To N k = k * m m = m + 1 此语句称为计数器 Next i Print N; ! = ; k End Sub,操作变量,形式变量,5.5.2 Do循环控制结构,适合于循环次数事先难以确定的场合。,Do循环控制结构有如下几种格式: 格式1: Do While 循环条件 语句组 Exit Do 循环体 语句组 Loop 格式1的循环流程如 图5.17所示。,图5.17 Do While Loop循环流程图,格式2: Do 语句组 Exit Do 循环体 语句组 Loop Whi
14、le 循环条件 格式2的循环流程如图5.18所示。 格式3: Do Until 循环条件 语句组 Exit Do 循环体 语句组 Loop 格式3的循环流程如图5.19所示。,格式4: Do 语句组 Exit Do 循环体 语句组 Loop Until 循环条件 格式4的循环流程如图5.20所示。,图5.20 Do Loop Until循环,Do循环语句的功能是:当指定的“循环条件”为True,或直到指定的“循环条件”为True之前,重复执行语句组(即循环体)。,其中: (1) 格式1与格式3为先判断后执行,有可能一次也不执行。格式2与格式4为先执行后判断,至少执行一次。 (2) 关键字Whi
15、le用于指明条件为True时,就执行循环体内的语句,Until正好相反。 (3) 当省略While 循环条件或Until 循环条件子句时,循环结构简化为: Do 语句组 Exit Do 循环体 语句组 Loop 结构,表示无条件循环,这时在循环体内应该有Exit Do语句,否则为死循环。,(4) Do循环控制结构在使用时要注意循环条件的设置,必须保证循环在执行有限次后能正常退出,否则将形成死循环。 (5) Exit Do语句表示当遇到该语句时,退出循环,执行Loop下面的语句。该语句一般是与If-Then语句配合使用,常见形式为: If Then Exit Do (6) 一般来说,可以使用上述
16、几种格式解决同一个问题,可以取得相同的结果,只是要注意循环条件的写法或在进入循环之前注意给循环体中使用到的变量赋以适当的初值。,5.5.3 For循环与Do循环的比较,For循环结构适用于已知循环次数的场合,而Do循环结构适用于循环次数不确定的场合。For循环结构中,修改循环变量的值的语句已经包含在语句结构中,控制意图明显;Do循环结构本身不修改循环变量的值,必须使用专门的语句修改循环变量的值,使循环能够进行。有的时候两种结构可以互相代替。,5.5.4 循环嵌套,(1) For循环的嵌套使用。除了内外层循环不能交叉外,还要注意内循环变量与外循环变量不能同名。例如下面的循环结构是错误的: 内、外
17、循环交叉 内、外循环变量同名 For i = 1 To 5 For i = 1 To 5 For j = 1 To 6 For i = 1 To 6 Next i Next i Next j Next i,(2) 分支结构与For循环结构的嵌套使用。要注意if结构的语句组要完全包含循环结构;同样循环结构的循环体也要完全包含if结构。例如下面的嵌套使用是错误的: For i = 1 To 10 if 条件表达式 Then if 条件表达式 Then For i = 1 To 10 Next i End if End if Next i,(3) Do循环的嵌套使用。使用中也同样要注意,外层循环必须完全包含内层循环,内层循环的结束语句必须在外层循环的结束语句之前出现,内外层循环不得互相交叉。,(4) 分支结构与Do循环结构的嵌套使用。要注意If结构的语句组要完全包含循环结构;同样循环结构的循环体也要完全包含If结构。例如下面的嵌套使用是错误的: Do While If 条件表达式 Then If 条件表达式 Then
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司用工聘用合同标准文本
- 分包工程合同8篇
- 买房卖合同标准文本
- 关注行业动态的必要性计划
- 产品全国包销合同标准文本
- 丰台租房合同标准文本
- 评估品牌传播成效的策略计划
- 全职老师合同标准文本
- 电信行业安全隐患排查及治理计划
- 教研成果转化为教学实践计划
- 肺孢子菌肺炎新课件
- 高纯碳酸锂行业报告
- 全科医学教育中的病例讨论与分析
- 湘教版七年级数学下册 第2章 整式的乘法 单元测试卷
- 6G网络-技术架构与应用探索
- 2024年西安印钞有限公司招聘笔试参考题库含答案解析
- 语文课趣味小游戏=
- (1.27)-发扬中国革命道德
- 学校安全隐患排查治理清单
- 苏教版五年级数学下册 (分数与除法的关系)认识分数课件
- 北京建筑施工特种作业人员体检表
评论
0/150
提交评论