VB教程---循环结构

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

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

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

资源描述

教学课件循环结构在VisualBasic程序的三种结构中,循环结构是一种重要结构。循环的本质:不断地重复某种动作。对计算机程序而言,循环必须具备两个重要因素:1.在一定的条件下,重复执行一组语句2.必然出现不满足条件的情况,使循环终止教学课件思考题编写程序实现计算:0+1+2+3+4+…+n的值前后两项之差都为1,是一个等差数列Sum=0Sum=sum+1Sum=sum+2Sum=sum+3…Sum=sum+nSum=sum+ii=i+1i是从1到n递增1的数列重复执行n次教学课件一、循环程序设计结构VB中提供了两种类型的循环语句:一种是计数循环语句;另一种是条件循环语句。VisualBasic支持的循环结构有:☆For...Next结构☆Do…Loop结构☆While…Wend☆goto重点掌握:Do…Loop、For.Next、While…Wend等前三种循环教学课件1、For…Next循环结构循环体ExitFor循环体循环变量增加步长循环变量获得初值FT循环变量在终值内For循环的执行过程语法格式:For循环变量=初值To终值[Step步长]循环体[ExitFor]循环体Next[循环变量]记住了教学课件编程计算:S=1+2+3+…+100DimS%,i%S=0Fori=1to100S=S+iNextiPrinti,S思考:求100以内的奇数和、偶数和怎样改程序?求10!怎样改程序?注意执行过程!!循环结束后循环变量i的值为多少教学课件说明①格式中的参数说明:循环的初值、终值和步长都是数值表达式,其值不一定是整数,可以是实数。增量参数可正可负。如果增量为正,则初值必须小于等于终值,否则不能执行循环体内的语句;如果增量为负,则初值必须大于等于终值。如果没有设置step,则增量默认为1。当初值等于终值时,不管步长是正数还是负数,都执行一次循环体。②循环次数由初值、终值和步长决定,计算公式为:循环次数=INT((终值–初值)/步长+1)③For语句和Next语句必须成对出现,不能单独使用。Next是循环终端语句,在Next后面的循环变量与For中的循环变量必须相同。当循环是单层循环时,Next后面的循环变量可以不写。教学课件④如果要在循环变量到达终值前退出循环,可用ExitFor语句来实现。该语句可以在For循环中出现多次,且位置不限。如:前例中加入条件“当sum超过400时跳出循环”。Fori=1to500step100S=S+IIfs400thenExitforNextiPrinti,S教学课件2、Do…Loop循环结构Do…Loop循环用于事先不知道循环次数的循环结构。此种语句四种语法格式:⑴.DoWhile…Loop语句先判断条件值,如果为真,执行循环体,否则退出⑵.DoUntil…Loop语句先判断条件值,如果为假,执行循环体,直到为真时退出⑶.Do…LoopWhile语句先执行循环体,后判断条件值,为真继续循环,否则退出⑷.Do…LoopUntil语句先执行循环体,后判断条件值,为假继续,直到为真退出教学课件⑴.DoWhile…Loop语句DimS%,i%S=0Fori=1to100S=S+IIfs400thenExitforNextiPrintS=,SDimS%,i%S=0i=1Dowhiles=400S=S+ii=i+1LoopPrintS=,S语法格式:DoUntil〈条件表达式〉〈循环体〉[ExitDo]〈循环体〉Loop(2)DoUntil…Loop语句语法格式:DoWhile〈条件表达式〉〈循环体〉[ExitDo]〈循环体〉LoopDimS%,i%S=0i=1Dountils400S=S+ii=i+1LoopPrintS=,S教学课件说明:①条件表达式可以是一个逻辑表达式,也可以是一个关系表达式,其值应是逻辑型。②DoWhile/Until和Loop应成对出现。③循环体中要有控制循环的语句,以避免出现死循环。④由于该循环的特点是先判断条件,然后再决定是否要执行循环体里的语句。所以,这种循环可以一次也不执行循环体。⑤ExitDo表示当遇到该语句时,强制退出循环,执行Loop后的下一条语句教学课件注意:①至少要执行循环体一次。②与DoWhile循环的区别:DoWhile循环先测试条件是否成立,只有成立才执行循环;而该循环先执行循环体,后测试条件是否成立。(3)Do…LoopWhile语句⑷.Do…LoopUntil语句语法格式:Do〈循环体〉[ExitDo]〈循环体〉LoopUntil〈条件表达式〉语法格式:Do〈循环体〉[ExitDo]〈循环体〉LoopWhile〈条件表达式〉教学课件例:输入有效位数,按下述公式计算圆周率∏的有效值。m=val(text1.text)pai=2:p=0Dot=s:p=spr(2+p):pai=t*2/pLoopUntilabs(t-s)0.1^m教学课件功能:当While的条件表达式的值是True时执行循环体内的代码,直到While后的条件表达式的值为False。说明:它与Do…Loop语句的差别是:While…Wend语句中不能使用Exit语句跳出循环。语法格式:While〈条件表达式)等价于doWhile(条件表达式)循环体循环体WendLOOP3、While…Wend循环结构教学课件几种循环语句比较For....toNextDowhile/until....Loopdo....LoopWhile/until...循环类型当型循环当型循环直到循环循环控制条件循环变量大于/小于终值条件成立/不成立条件成立/不成立循环变量初值在FOR语句中在DO之前在DO之前使循环结束For语句中无需专门语句必须用专门语句必须使用专门语句使用场合循环次数容易确定条件件易给出条件件易给出教学课件练习:1、求100~200之间不能被3整除的数。2、判断一个数是否为质数。解2:Value=Val(Text1.Text)Counter=2DoUntilValueModCounter=0OrCounter=ValueCounter=Counter+1LoopIfCounter=ValueThenPrint质数解1:value=val(Text1.text)Forcounter=2Tovalue-1IfvalueModcounter=0ThenExitForNextIfcounter=valueThenPrint质数教学课件4、验证哥德巴赫猜想:任意一个大于等于6的偶数都可以分解为两个质数之和。基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则为一组解。如n1不是素数,就不必再检查n2是否素数。先从n1=3开始,检验n1和n2(n2=N-n1)是否素数。然后使n1+2再检验n1、n2是否素数,…直到n1=n/2为止。3、输入两个正整数,求它们的最大公约数。输入两个自然数m,nr=mmodn若r=0,则n为m的最大公约数若r0,则m=n,n=r重复执行第二步mnm=Text1.Textn=Text2.TextDot=mModnm=n:n=tLoopUntiln=0Printm教学课件二、循环的嵌套——多重循环结构1、如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,2、嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:教学课件(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….Loop…..Loop教学课件例题:在窗体上输出100以内质数。PrivateSubCommand1_Click()DimvalueAsIntegerDimcounterAsIntegerDimnumAsIntegerMe.ClsForvalue=2To100Forcounter=2Tovalue-1IfvalueModcounter=0ThenExitForEndIfNextIfcounter=valueThenPrintvalue;Tab;num=num+1IfnumMod3=0ThenPrintEndIfNextPrintPrint100以内的质数有&num&个EndSub教学课件例题:在文本框内输出水仙花数。PrivateSubcommand1_Click()Dimx%,y%,z%,n%Forx=0To9Fory=0To9Forz=1To9Ifx^3+y^3+z^3=x+y*10+z*100Thentext1.text=x^3+y^3+z^3EndIfNextNextNextEndsubPrivateSubcommand1_Click()List1.ClearDimx%,y%,z%,n%Forn=100To999x=nMod10y=n\10Mod10z=n\100Ifx^3+y^3+z^3=nThentext1.text=x^3+y^3+z^3EndIfNextEndsub教学课件•我国古代数学家章丘建在“算经”里提出一个世界数学史上有名的百钱百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏一,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?•找出1~999之间所有的同构数–同构数:该数出现在它的平方数的右边,如:5—25,25—625•输入一个整数,判断其是否是“完全数”–完全数:该数的因子之和等于其本身,如28=1+2+4+7+14练习:教学课件例题:打印九九乘法表Fori=1To9Forj=1To9e=i&×&j&=&i*jPrintTab((j-1)*9+1);e;NextjPrintNexti教学课件例题:打印九九乘法表Fori=1To9Forj=1Toie=j&×&i&=&i*jPrintTab((j-1)*9+1);e;NextjPrintNexti教学课件练习•实验教程:实验5教学课件对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;正确错误Fori=1To10Forj=1To20…NextiNextjFori=1To10Forj=1To20…NextjNexti教学课件6.5跳转语句格式:GoTo行标签|行号GoTo语句可以改变程序执行的顺序,跳过程序的某一部分去执行另一部分,或者返回已经执行过的某语句使之重复执行。•行标签可以是任何字符的组合,以字母开头,以冒号(:)结尾。•行号由整型数字组成,后面没有冒号。•GoTo语句只能在一个过程中使用。•GoTo语句是无条件转移语句,但常与条件语句结合使用。教学课件跳转语句举例:求1+2+3+…+100的和PrivateSubCommand1_Click()Dimsum&,i%i=1sum=0again:Ifi=100Thensum=sum+ii=i+1GoToagainEndIfPrintsumEndSub【例】计算存款利息

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

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

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

×
保存成功