VB程序设计第7章-循环结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第七章循环结构程序设计1第2次上交作业:设计并开发一个打字练习程序,能够计时并统计练习者的打字速度和正确率等,其它功能自行扩展。要求:下次上机进行系统提交第七章循环结构程序设计2第7章循环结构程序设计本章要点:•While循环结构•Do循环结构•For循环结构•GoTo型循环•多重循环第七章循环结构程序设计3对比选择结构,思考:1)什么是循环结构,代码特征是什么?2)程序设计中哪些情况下需要用循环结构?3)为什么需要循环结构,如果不用有无其他替代方法?4)VB中循环结构的实现形式/语法结构?第七章循环结构程序设计4问题1:计算s=1+1+1+······+1(100个1相加)s=0s=s+1s=s+1……s=s+1循环体为解决某问题,可能某一段代码需要有条件的连续重复执行许多次,这就是循环程序结构。需重复执行的一段代码,我们称之为循环体。RefWD第七章循环结构程序设计5VB提供了丰富的实现循环结构的语句:1)While…Wend语句2)Do…Loop语句3)For…Next语句4)Goto语句——这就是VB中循环结构的形式分类!下面通过分析循环结构的语法格式、功能、要点说明、执行过程(例题)来学习每种循环结构,同时提炼出循环结构的学习要领。第七章循环结构程序设计67.1While循环结构1.While循环结构语法格式:While条件表达式[语句组]WendRefWD2.功能(准确描述)首先判断条件表达式,如果条件表达式的值为False就不执行循环体,循环结构结束,应用程序继续往后执行Wend后面的语句;如果条件表达式的值为True就执行循环体,然后再返回判断条件。第七章循环结构程序设计7问题1:计算s=1+1+1+······+1(100个1相加)(用WhileWend改写如下)Dims,countAsIntegers=0‘初始化count=1‘初始化Whilecount=100‘循环开始s=s+1‘循环体语句count=count+1‘循环体语句Wend‘循环结束Label1.Caption=sRefAnalysis第七章循环结构程序设计8说明:(1)条件表达式:关系表达式或逻辑表达式,取值为True或False;a)它是用于判断循环是否继续执行的条件;b)它应该根据实际需要赋予一个合理的初值;c)它的值应该在循环的执行过程中进行变化,因为它既是进入循环的条件,也是结束循环的条件。d)防止死循环!第七章循环结构程序设计9(2)循环体:循环结构中需要重复执行的语句组部分;a)循环体中不能包括初变量初始化语句组;b)提取出需要重复执行的语句组放在循环体中;c)考虑在循环体中放置改变循环条件的语句,以便于在满足特定条件的情况下退出循环;(3)Wend:与While语句匹配使用的循环结束语句,不能单独出现,也不能缺少。第七章循环结构程序设计10【例7.2】利用格里高利公式求π71513114分析:这是一个用多项式累加和模拟PI值的题目,每一项都具有特定的变化规律,那么:1)判断出要用循环结构来做2)寻找(或创造)循环条件3)明确循环体,及循环条件在循环体中作用4)设计算法流程,或直接编程实现第七章循环结构程序设计11PrivateSubForm_Load()DimPi,Sum,s,iAsDoubleSum=0‘累加和,模拟PIi=1‘每项的分母值s=1‘符号变量WhileAbs(s/i)0.0000001Sum=Sum+s/ii=i+2s=-1*sWendPi=Sum*4Label2.Caption=PiEndSub第七章循环结构程序设计127.2Do循环结构Do循环结构一般由Do…Loop语句构成,组成完整循环结构,位于其内的语句组构成循环体。RefWD思考:Do循环的循环条件由什么构成呢?方案:与While语句或Until语句配合使用构成,而且根据While语句或Until语句在Do…Loop中所处的位置不同,既可以构成“当型循环”,又可以构成“直到型循环”。RefWD第七章循环结构程序设计13特别说明:我们知道,程序中的循环体不可能永无止境的执行,需要有结束执行的条件(循环条件);根据先判断条件后执行循环体,还是先执行循环体再判断条件把循环结构分为两类(语义上):1)当型循环:先判断条件、再执行循环体,然后返回再判断条件,开始新的一趟。2)直到型循环:先执行一遍循环体,再判断条件,所以在这种结构中,循环体至少执行一遍。RefWD第七章循环结构程序设计147.2Do循环结构1、当型循环(由DoWhileLoop组成)语法格式:DoWhile条件表达式循环体Loop流程图:True条件循环体False第七章循环结构程序设计15例题1改造成DoWhile结构:PrivateSubForm_Load()DimSum,CountAsIntegerSum=0Count=1DOWhileCount=100Sum=Sum+1Count=Count+1LOOPText1.Text=SumEndSub当型格式第七章循环结构程序设计162、直到型循环(由DoLoopUntil组成)语法格式:Do循环体LoopUntil条件表达式流程图:True条件循环体False第七章循环结构程序设计17例题1改造成DoUntil结构:PrivateSubForm_Load()DimSum,CountAsIntegerSum=0Count=1DOSum=Sum+1Count=Count+1LOOPUNTILCount100Text1.Text=SumEndSub直到型格式2第七章循环结构程序设计187.3for循环结构能够确定循环体执行的次数,那么使用For循环结构比使用While循环结构或Do循环结构更加清晰、简洁、方便。For…Next语句的语法为:For循环变量=初值To终值[Step增量]循环体Next[循环变量]1)循环变量:也称作计数器,是一个变量,专门用于控制循环体执行的次数。2)初值:循环变量的第一次取值。3)终值:循环变量与之比较以决定是否结束循环。4)增量:也称作步长,循环变量每次变化时需增加的数据值,增量可为正数也可为负数。如果增量为正数,则终值应大于或等于初值;如果增量为负数,则终值应小于或等于初值。第七章循环结构程序设计195)循环体:由若干条语句组成,并可有ExitFor语句。ExitFor语句表示无条件退出For循环。6)Next[循环变量]:循环体每执行一遍后,循环变量的值就变化一次。循环变量终值循环体True循环变量=初值循环变量=循环变量+增量第七章循环结构程序设计20例题1改造成ForNext结构Sum=0Fori=1To100Step1Sum=Sum+1Nexti思考:求100以内所有偶数的和?【例7.7】在窗体中对比显示从16号字型到9号字型。第七章循环结构程序设计21PrivateSubForm_Load()DimiAsIntegerShow'使输出可见Form1.Font=新宋体Fori=16To9Step-1Form1.FontSize=iPrinti;号字型NextiEndSub分析:题目要求对字体大小从16到9依次输出,可以判断出需要用循环结构,而且循环次数确定(初始值16到终值9),所以可以采用ForNext循环结构,那么思考如何写呢?第七章循环结构程序设计22VB中保留了GoTo语句和On……GoTo语句,他们都可以控制程序的执行方向,虽然不提倡使用,但在有些情况下也是有用的,而且能构成循环结构。7.4GoTo型循环7.4.1GoTo语句GoTo语句为无条件转移语句。GoTo语句的语法格式为:GoTo标号|行号例如:GotoStart第七章循环结构程序设计23说明:(1)标号:以英文开头的标示符,它可以出现在GoTo语句之前或者之后,但是要以“:”结束,并且与GoTo语句在同一个过程中存在;(2)行号:是一个整型数字,位于语句行的最前面。行号可以出现在GoTo语句之前或者之后,必须与GoTo语句在同一个过程中存在;例如:GoTo1000……1000……第七章循环结构程序设计24(1)构成循环:把标号或行号置前,GoTo语句与If语句配合使用可实现有条件地重复执行某程序段,从而构成Goto型循环。例如:PrivateSubForm_Load()Dimcount,SumAsIntegerSum=0:i=1Start:‘标号Sum=Sum+1‘循环体语句i=i+1‘循环体语句Ifi=100ThenGoToStart‘GoTo语句Label2.Caption=SumEndSub第七章循环结构程序设计257.4.2On…GoTo语句On……GoTo语句可以根据不同的条件从多个出口中选择一个。其语法格式为:On数值表达式GoTo标号表列|行号表列说明:(1)标号列表:是程序中存在多个标号,多个标号之间用“,”分隔;(2)行号列表:是程序中存在多个行号,多个行号之间也用“,”分隔;标号和行号可以同时使用。第七章循环结构程序设计26例如:Onx+1GoToR1,20,50y=10:Printy:EndR1:y=0:Printy:End20y=1:Printy:End50y=2:Printy:End执行顺序是:先计算“数值表达式”的值后取整,如果此整数范围在所提供的标号及行号的总个数之内,其值为几就按顺序找到对应的第几个标号或行号,转到该处执行;如果此整数不在所提供的标号及行号的总个数之内,则执行On……Goto之后的下一条语句。第七章循环结构程序设计27在循环结构中,如果循环体中又包含循环结构,就构成了多重循环,也称为循环嵌套。由于循环形式具有多种,它们之间可以相互嵌套,所以多重循环的形式多种多样。注意:(1)每一种循环语句中的开始部分与结束部分的配对使用。(结构完整)(2)多重循环的循环体不能相互交叉。(逻辑完整)7.5多重循环第七章循环结构程序设计28【例7.10】打印九九乘法口诀。分析:因为乘法口诀中相乘的两个因子都是不断变化的,因此该问题需要有两重循环才能实现,外层循环控制一个因子的变化,内层循环控制另一个因子的变化;而且内层因子的取值范围与外层因子有关系!第七章循环结构程序设计29PrivateSubForm_Load()Dimi,jAsSingleShow'使输出可见FontSize=8Fori=1To9Forj=1ToiPrintj;*;i;=;i*j;NextjPrint‘控制换行NextiEndSub第七章循环结构程序设计30总结:形式:VB提供了四种循环结构的语句:1)While…Wend2)Do…Loop3)For…Next4)Goto方法:1)判断出要用循环结构来做2)寻找(或创造)循环条件3)明确循环体,及循环条件在循环体中作用4)设计算法流程,或直接编程实现第七章循环结构程序设计31【练习】依次输入某班同学外语考试的成绩:1)计算全班所有同学的外语课平均成绩2)找出最高和最低分要求:可以利用VB中前面学过的所有知识(包括数据类型、三种结构、输入输出方法、VB控件),要求:1)设计界面(控件元素、各控件的属性、事件过程等),在纸上画出2)分别用四种循环实现代码

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功