VB程序设计第7章-循环结构_第1页
VB程序设计第7章-循环结构_第2页
VB程序设计第7章-循环结构_第3页
VB程序设计第7章-循环结构_第4页
VB程序设计第7章-循环结构_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第2次上交作业: 设计并开发一个打字练习程序,能够计时并统计练习者的打字速度和正确率等,其它功能自行扩展。 要求:下次上机进行系统提交,2,第7章,循环结构程序设计,本章要点: While循环结构 Do循环结构 For循环结构 GoTo型循环 多重循环,3,对比选择结构,思考: 1)什么是循环结构,代码特征是什么? 2)程序设计中哪些情况下需要用循环结构? 3)为什么需要循环结构,如果不用有无其他替代方法? 4)VB中循环结构的实现形式/语法结构?,4,问题1:计算 s= 1+1+1+1(100个1相加) s=0 s=s+1 s=s+1 s=s+1,为解决某问题,可能某一段代码需要有条件的

2、连续重复执行许多次,这就是循环程序结构。 需重复执行的一段代码,我们称之为循环体。,Ref WD,5,VB提供了丰富的实现循环结构的语句: 1)While Wend语句 2)Do Loop语句 3)For Next语句 4)Goto语句 这就是VB中循环结构的形式分类! 下面通过分析循环结构的语法格式、功能、要点说明、执行过程(例题)来学习每种循环结构,同时提炼出循环结构的学习要领。,6,7.1 While循环结构,1. While循环结构语法格式: While 条件表达式 语句组 Wend Ref WD 2. 功能(准确描述) 首先判断条件表达式,如果条件表达式的值为False就不执行循环体

3、,循环结构结束,应用程序继续往后执行Wend后面的语句;如果条件表达式的值为True就执行循环体,然后再返回判断条件。,7,问题1:计算 s= 1+1+1+1(100个1相加) (用While Wend改写如下) Dim s, count As Integer s = 0 初始化 count = 1 初始化 While count = 100 循环开始 s = s + 1 循环体语句 count = count + 1 循环体语句 Wend 循环结束 Label1.Caption = s,Ref Analysis,8,说明: (1)条件表达式:关系表达式或逻辑表达式,取值为True或False

4、; a) 它是用于判断循环是否继续执行的条件; b) 它应该根据实际需要赋予一个合理的初值; c) 它的值应该在循环的执行过程中进行变化,因为它既是进入循环的条件,也是结束循环的条件。 d) 防止死循环!,9,(2)循环体:循环结构中需要重复执行的语句组部分; a)循环体中不能包括初变量初始化语句组; b)提取出需要重复执行的语句组放在循环体中; c)考虑在循环体中放置改变循环条件的语句,以便于在满足特定条件的情况下退出循环; (3)Wend: 与While语句匹配使用的循环结束语句,不能单独出现,也不能缺少。,10,【例7.2】利用格里高利公式求,分析: 这是一个用多项式累加和模拟PI值的题

5、目,每一项都具有特定的变化规律,那么: 1)判断出要用循环结构来做 2)寻找(或创造)循环条件 3)明确循环体,及循环条件在循环体中作用 4)设计算法流程,或直接编程实现,11,Private Sub Form_Load() Dim Pi, Sum, s, i As Double Sum = 0 累加和,模拟PI i = 1 每项的分母值 s = 1 符号变量 While Abs(s / i) 0.0000001 Sum = Sum + s / i i = i + 2 s = -1 * s Wend Pi = Sum * 4 Label2.Caption = Pi End Sub,12,7.2

6、 Do循环结构,Do循环结构一般由Do Loop语句构成,组成完整循环结构,位于其内的语句组构成循环体。 Ref WD 思考:Do循环的循环条件由什么构成呢? 方案:与While语句或Until语句配合使用构成,而且根据While语句或Until语句在DoLoop中所处的位置不同,既可以构成“当型循环”,又可以构成“直到型循环”。 Ref WD,13,特别说明: 我们知道,程序中的循环体不可能永无止境的执行,需要有结束执行的条件(循环条件);根据先判断条件后执行循环体,还是先执行循环体再判断条件把循环结构分为两类(语义上): 1)当型循环:先判断条件、再执行循环体,然后返回再判断条件,开始新的

7、一趟。 2)直到型循环:先执行一遍循环体,再判断条件,所以在这种结构中,循环体至少执行一遍。 Ref WD,14,7.2 Do循环结构 1、当型循环(由Do While Loop组成) 语法格式: Do While 条件表达式 循环体 Loop 流程图:,15,例题1改造成Do While结构: Private Sub Form_Load() Dim Sum, Count As Integer Sum = 0 Count = 1 DO While Count =100 Sum = Sum + 1 Count = Count + 1 LOOP Text1.Text = Sum End Sub,当

8、型格式,16,2、直到型循环 (由Do Loop Until组成) 语法格式: Do 循环体 Loop Until 条件表达式 流程图:,17,例题1改造成Do Until结构: Private Sub Form_Load() Dim Sum, Count As Integer Sum = 0 Count = 1 DO Sum = Sum + 1 Count = Count + 1 LOOP UNTIL Count 100 Text1.Text = Sum End Sub,直到型格式2,18,7.3 for循环结构,能够确定循环体执行的次数,那么使用For循环结构比使用While循环结构或Do

9、循环结构更加清晰、简洁、方便。,For Next语句的语法为: For 循环变量初值 To 终值 Step 增量 循环体 Next 循环变量 ,1)循环变量:也称作计数器,是一个变量,专门用于控制循环体执行的次数。 2)初值:循环变量的第一次取值。 3)终值:循环变量与之比较以决定是否结束循环。 4)增量:也称作步长,循环变量每次变化时需增加的数据值,增量可为正数也可为负数。如果增量为正数,则终值应大于或等于初值;如果增量为负数,则终值应小于或等于初值。,19,5)循环体:由若干条语句组成,并可有Exit For语句。Exit For语句表示无条件退出For循环。 6)Next 循环变量:循环

10、体每执行一遍后,循环变量的值就变化一次。,20,例题1改造成For Next结构 Sum = 0 For i = 1 To 100 Step 1 Sum = Sum + 1 Next i,思考:求100以内所有偶数的和?,【例7.7】在窗体中对比显示从16号字型到9号字型。,21,Private Sub Form_Load() Dim i As Integer Show 使输出可见 Form1.Font = 新宋体 For i = 16 To 9 Step -1 Form1.FontSize = i Print i; 号字型 Next i End Sub,分析: 题目要求对字体大小从16到9依

11、次输出,可以判断出需要用循环结构,而且循环次数确定(初始值16 到终值9),所以可以采用For Next循环结构,那么思考如何写呢?,22,VB中保留了GoTo语句和On GoTo语句,他们都可以控制程序的执行方向,虽然不提倡使用,但在有些情况下也是有用的,而且能构成循环结构。,7.4 GoTo型循环,7.4.1 GoTo语句 GoTo语句为无条件转移语句。GoTo语句的语法格式为: GoTo 标号 | 行号 例如: Goto Start,23,说明: (1)标号:以英文开头的标示符,它可以出现在GoTo语句之前或者之后,但是要以“:”结束,并且与GoTo语句在同一个过程中存在; (2)行号:

12、是一个整型数字,位于语句行的最前面。行号可以出现在GoTo语句之前或者之后,必须与GoTo语句在同一个过程中存在; 例如: GoTo 1000 1000 ,24,(1)构成循环:把标号或行号置前,GoTo语句与If语句配合使用可实现有条件地重复执行某程序段,从而构成Goto型循环。 例如:,Private Sub Form_Load() Dim count , Sum As Integer Sum = 0:i = 1 Start: 标号 Sum = Sum + 1 循环体语句 i = i + 1 循环体语句 If i =100 Then GoTo Start GoTo语句 Label2.Cap

13、tion = Sum End Sub,25,7.4.2 On GoTo 语句 On GoTo语句可以根据不同的条件从多个出口中选择一个。其语法格式为: On 数值表达式 GoTo 标号表列 | 行号表列,说明: (1)标号列表:是程序中存在多个标号,多个标号之间用“,”分隔; (2)行号列表:是程序中存在多个行号,多个行号之间也用“,”分隔;标号和行号可以同时使用。,26,例如: On x1 GoTo R1,20,50 y = 10 : Print y : End R1: y = 0 : Print y : End 20 y = 1: Print y : End 50 y = 2 : Prin

14、t y : End,执行顺序是:先计算“数值表达式”的值后取整,如果此整数范围在所提供的标号及行号的总个数之内,其值为几就按顺序找到对应的第几个标号或行号,转到该处执行;如果此整数不在所提供的标号及行号的总个数之内,则执行OnGoto之后的下一条语句。,27,在循环结构中,如果循环体中又包含循环结构,就构成了多重循环,也称为循环嵌套。 由于循环形式具有多种,它们之间可以相互嵌套,所以多重循环的形式多种多样。 注意: (1)每一种循环语句中的开始部分与结束部分的配对使用。(结构完整) (2)多重循环的循环体不能相互交叉。(逻辑完整),7.5 多重循环,28,【例7.10】打印九九乘法口诀。,分析

15、: 因为乘法口诀中相乘的两个因子都是不断变化的,因此该问题需要有两重循环才能实现,外层循环控制一个因子的变化,内层循环控制另一个因子的变化;而且内层因子的取值范围与外层因子有关系!,29,Private Sub Form_Load() Dim i, j As Single Show 使输出可见 FontSize = 8 For i = 1 To 9 For j = 1 To i Print j ; * ; i ; = ; i * j ; Next j Print 控制换行 Next i End Sub,30,总结: 形式:VB提供了四种循环结构的语句: 1)While Wend 2)Do Loop 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论