《零基础学VB 第6章.ppt》由会员分享,可在线阅读,更多相关《零基础学VB 第6章.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第六六章章 循循环环结结构构程程序序设设计计循环结构程序设计循环结构程序设计本章要点本章要点:For.Next循环循环While.Wend循环循环Do.Loop循环循环特点特点:重复相同或相似的操作步骤重复相同或相似的操作步骤结构结构:循环体循环体要重复执行的语句序列。要重复执行的语句序列。循环控制部分循环控制部分规定循环的重复条件或重规定循环的重复条件或重复次数,确定循环范围的语句复次数,确定循环范围的语句1第第六六章章 循循环环结结构构程程序序设设计计初值初值 循环变量循环变量6.1 ForNext循环结构循环结构1.格式格式For =To Step 1 Exit For 2Next 循
2、环变量值超过终值?循环变量值超过终值?执行循环体执行循环体循环变量循环变量+步长步长 循环变量循环变量后续语句后续语句YesNo2.功能功能:执行过程如流执行过程如流程图所示程图所示2第第六六章章 循循环环结结构构程程序序设设计计3.3.说明说明(1)(1)循环变量循环变量数值变量数值变量(2)(2)初值初值,终值终值,步长步长数值表达式数值表达式(3)(3)步长步长可正可负可正可负,但不能为但不能为0,0,为为1 1时可以省略时可以省略 步长步长00时,必须时,必须:初值初值=终值终值 步长步长0=终值终值 循环结束条件循环结束条件循环变量的值循环变量的值 终值终值(4)(4)Exit Fo
3、r退出循环,常放在条件语句中退出循环,常放在条件语句中(5)(5)Next之之后的循环变量应与后的循环变量应与ForFor语句中的循环变量一致,语句中的循环变量一致,也可以省略也可以省略3第第六六章章 循循环环结结构构程程序序设设计计例例:判断以下程序段的执行结果判断以下程序段的执行结果:For i=5 To 1 Step-1 Print i*i;Next i Print Print i例例:判断以下程序段的执行结果判断以下程序段的执行结果:X=6 For K=1 To 10 Step-2 X=X+K Next K Print K,XK=1;超过终值超过终值不进入循环不进入循环4第第六六章章
4、循循环环结结构构程程序序设设计计Text1 Label3累加分析累加分析:累加器累加器(变量变量)初值初值 S=0 循环体循环体(重复执行重复执行)S=S+I(I=1,2,N)Private Sub Command1_Click()Dim N As Integer,I As Integer,S As Integer N=Val(Text1.Text)S=0 For I=1 To N S=S+I Next I Label3.Caption=SEnd Sub【例【例6-1】求】求1+2+3+4+N5第第六六章章 循循环环结结构构程程序序设设计计思考思考:1.求求12+22+32+42+10022.
5、求求13+33+53+n33.求求1-3+5-7+(-1)n+1(2n-1)4.求求5.求求6第第六六章章 循循环环结结构构程程序序设设计计 例例6-2】求】求 N!(N!=123N)累乘分析累乘分析:初始化初始化:F=1 循环体循环体:F=F I (I=1,2,3N)程序程序:Private Sub Command1_Click()Dim N As Integer,I As Integer,F As Long N=Val(Text1.Text)F=1 For I=1 To N F=F*I Next I Text2.Text=F End Sub7第第六六章章 循循环环结结构构程程序序设设计计思
6、考思考:1.求求13 5 7(共共N项项)。2.求求:3.求求:8第第六六章章 循循环环结结构构程程序序设设计计【例【例6-3】打印斐波那契】打印斐波那契(Fibonacci)数列的前数列的前20项项 斐波那契数列如下斐波那契数列如下:0,1,1,2,3,5,8,13,即从第三项起每一项是其前两项之和。即从第三项起每一项是其前两项之和。分析分析:Private Sub Form_Click()A=0:B=1Text1.Text=Text1.Text&Str(A)&Str(B)&vbCrLfFor I=1 To 9 A=A+B B=A+B Text1.Text=Text1.Text&Str(A)
7、&Str(B)&vbCrLfNext IEnd Sub9第第六六章章 循循环环结结构构程程序序设设计计思考思考:1.在窗体上打印在窗体上打印1、3、5、7、9、N。2.在窗体上显示在窗体上显示1到到500之间所有能被之间所有能被3整除的数,整除的数,每行每行10个数。个数。3.在带水平滚动条文本框中显示在带水平滚动条文本框中显示1到指定到指定N之间所之间所有能被有能被3和和7同时整除的数。同时整除的数。4.在带垂直滚动条的文本框中显示在带垂直滚动条的文本框中显示003600之间的之间的正弦和余弦值,每隔正弦和余弦值,每隔20求一组值。求一组值。10第第六六章章 循循环环结结构构程程序序设设计计
8、6.2 While.Wend循环结构循环结构问题问题:求求12+22+32+42+小于某数小于某数N的最大值,的最大值,N由用户由用户指定。指定。特点特点:已知循环条件、未知循环次数,已知循环条件、未知循环次数,用用While.Wend循环结构实现较方便循环结构实现较方便1.格式格式 While Wend2.功能功能F F条件条件?语句组语句组T T11第第六六章章 循循环环结结构构程程序序设设计计【例【例6-4】使用】使用While.Wend循环求循环求12+22+32+大大于某数于某数N的最小值,的最小值,N由用户指定。由用户指定。Text1Label2Command1分析:分析:是累加问
9、题是累加问题初始化初始化:S=0 I=0 N由由Text1输入输入循环条件循环条件:S=N循环体循环体:I=I+1 S=S+I212第第六六章章 循循环环结结构构程程序序设设计计“计算计算”按钮按钮Command1的的Click事件过程如下:事件过程如下:Private Sub Command1_Click()Dim I As Integer,N As Integer,S As Integer N=Val(Text1.Text)I=0:S=0 While S=N I=I+1 S=S+I*I Wend Label2.Caption=SEnd SubWhile.Wend循环可以使用循环可以使用Do
10、.Loop循环来代替,但循环来代替,但Do.Loop循环具有更多的形式。循环具有更多的形式。思考思考:求求12+22+32+42+小于某数小于某数N的最大值的最大值13第第六六章章 循循环环结结构构程程序序设设计计6.2 DoLoop循环结构循环结构格式:格式:格式一格式一:Do While Exit Do Loop格式二格式二:Do Until Exit Do Loop条件条件?循环体循环体TF条件条件?循环体循环体FT功能:功能:14第第六六章章 循循环环结结构构程程序序设设计计格式:格式:格式三格式三:Do Exit Do Loop While 格式四格式四:Do Exit Do Loo
11、p Until条件条件?循环体循环体TF功能:功能:条件条件?循环体循环体TF15第第六六章章 循循环环结结构构程程序序设设计计说明说明:(1)Exit Do语句用于退出循环体语句用于退出循环体(2)也可以在也可以在Do语句和语句和Loop语句之后都没有条件语句之后都没有条件,这时在这时在循环体内必须有强行退出循环的语句即:循环体内必须有强行退出循环的语句即:Do Exit Do Loop(3)当当型型循循环环可可能能一一次次都都不不执执行行;而而直直到到型型循循环环至至少少要要执执行行一一次次循循环环体体。多多数数情情况况下下,当当型型循循环环和和直直到到型型循循环环可可互互相代替。相代替。
12、16第第六六章章 循循环环结结构构程程序序设设计计【例【例6-5】求】求直至最后一项的值直至最后一项的值10-4为止。为止。分析分析:用用Sum表示累加和,表示累加和,初值初值:Sum=0 重复重复:Sum=Sum+Term 用用N表示表示1,3,5,7,初值初值:N=1 重复重复:N=N+2 用用Term表示每一项,表示每一项,则则Term=1/(N*N)归纳:归纳:初始化初始化 N=1,Sum=0 重复重复 Term=1/(N*N),Sum=Sum+Term,N=N+2 循环终止条件循环终止条件 Term=0.0001 17第第六六章章 循循环环结结构构程程序序设设计计设单击窗体时开始计算
13、,结果打印在窗体上。设单击窗体时开始计算,结果打印在窗体上。Private Sub Form_Click()N=1:Sum=0 Do Term=1/(N*N)Sum=Sum+Term N=N+2 Loop Until Term=2PText1Text2Text3Text419第第六六章章 循循环环结结构构程程序序设设计计设单击窗体时开始计算:设单击窗体时开始计算:Private Sub Form_Click()P=Val(Text1.Text)R=Val(Text2.Text)/100 V=P:Y=0 Do Until V=2*P Y=Y+1 V=V*(1+R)Loop Text3.Text=
14、Y Text4.Text=Format(V,0.00)End Sub20第第六六章章 循循环环结结构构程程序序设设计计【例【例6-7】给出两个正整数】给出两个正整数M、N,求它们的最大公约数和最求它们的最大公约数和最小公倍数。小公倍数。分析分析:求最大公约数的方法如下求最大公约数的方法如下(1)以以M作被除数,作被除数,N作除数,求余数作除数,求余数R。(2)如果如果R不为零,则将除数不为零,则将除数N做为新的被除数做为新的被除数M,将余数将余数R做为新的除数做为新的除数N,再进行相除,得到新的余数再进行相除,得到新的余数R。(3)如果如果R仍不等于仍不等于0,则重复上述步骤,则重复上述步骤(
15、2)。如果。如果R为零,则为零,则这时的除数这时的除数N就是最大公约数。就是最大公约数。最小公倍数为两个数的积除以它们的最大公约数。最小公倍数为两个数的积除以它们的最大公约数。21第第六六章章 循循环环结结构构程程序序设设计计设计界面如下图所示设计界面如下图所示:Text1Text2Label3Label4Command1Command222第第六六章章 循循环环结结构构程程序序设设计计Dim A As Integer,B As Integer,N As Integer,_ M As Integer,R As IntegerPrivate Sub Command1_Click()M=Val(T
16、ext1.Text):N=Val(Text2.Text)A=M:B=N R=M Mod N Do While R 0 M=N N=R R=M Mod N Loop Label3.Caption=NEnd SubPrivate Sub Command2_Click()Label4.Caption=A*B/NEnd Sub23第第六六章章 循循环环结结构构程程序序设设计计【例【例6-8】给一个整数】给一个整数n(n=3),判断它是否是素数判断它是否是素数 分析分析:将数将数N被被2SQR(N)间全部整数除,如果都除不尽,则间全部整数除,如果都除不尽,则N是素数,否则是素数,否则N不是素数。不是素数
17、。设标志变量设标志变量Flag,只要只要有一个被整除,就置为有一个被整除,就置为1。Label1Text1Command124第第六六章章 循循环环结结构构程程序序设设计计Private Sub Command1_Click()N=Val(Text1.Text):K=Int(Sqr(N):I=2 Flag=0 Do While I=K And Flag=0 If N Mod I=0 Then Flag=1 Else I=I+1 Loop If Flag=0 Then Label1.Caption=是素数是素数 Else Label1.Caption=不是素数不是素数 End IfEnd Sub
18、25第第六六章章 循循环环结结构构程程序序设设计计6.3 6.3 循环的嵌套循环的嵌套 在一个循环体内又完整地包含另一个循环在一个循环体内又完整地包含另一个循环,称为循环的嵌套称为循环的嵌套(或多重循环或多重循环)例例:For I=1 To 3 For J=5 To 7 Print I,J Next J Next I执行过程执行过程:例例:For I=1 To 3 For J=1 To I For K=-1 To-2 S=S+I+J+K Next K Next J Next I执行过程执行过程:26第第六六章章 循循环环结结构构程程序序设设计计说明说明(1)嵌套的循环可以是嵌套的循环可以是Fo
19、rNext循环,也可以是循环,也可以是 DoLoop循环循环(2)连续的连续的NEXT语句可以合并成一个语句可以合并成一个NEXT语句,循环变量语句,循环变量按从内到外排列按从内到外排列For I=1 TO 3 For J=5 TO 7 Print I,JNext J,IFor I=1 TO 3 For J=5 TO 7 Print I,J Next JNext I例例:(3)内外循环不应交叉内外循环不应交叉 例例:For I=.For J=.Next I Next J27第第六六章章 循循环环结结构构程程序序设设计计(4)嵌套循环应选用不同的循环变量嵌套循环应选用不同的循环变量例例:For
20、I=.For J=.Next J .For J=.Next J Next I28第第六六章章 循循环环结结构构程程序序设设计计【例【例6-9】求】求1+(1+2)+(1+2+3)+(1+2+3+n),n由用户输入。由用户输入。分析分析:Private Sub Form_Click()N=Val(Text1.Text)Sum=0 For I=1 To N Sum1=0 For J=1 To I Sum1=Sum1+J Next J Sum=Sum+Sum1 Next I Text2.Text=SumEnd Sub29第第六六章章 循循环环结结构构程程序序设设计计【例【例6-10】公鸡】公鸡5个钱
21、一只,母鸡三个钱一只、小鸡一个钱三个钱一只,母鸡三个钱一只、小鸡一个钱三只,要用只,要用100个钱买个钱买100只鸡,问公鸡、母鸡、和小鸡各买几只鸡,问公鸡、母鸡、和小鸡各买几只?只?分析分析:Private Sub Form_Click()Dim I As Integer,J As Integer,K As Integer Print Tab(5);公鸡公鸡;Tab(15);母鸡母鸡;Tab(25);_ 小鸡小鸡 For I=0 To 20 For J=0 To 33 For K=0 To 100 Step 3 If I*5+J*3+K3=100 And I+J+K=100 Then Pri
22、nt Tab(5);I;Tab(15);J;Tab(25);K End If Next K,J,IEnd Sub30第第六六章章 循循环环结结构构程程序序设设计计【例【例6-11】数字灯谜。有算式数字灯谜。有算式:A B C D-)C D CA B CA、B、C、D为非负一位数字,要求找出满足以为非负一位数字,要求找出满足以上算式的上算式的A、B、C、D。答案答案:1098:1098 1 0 9 8 1 0 9 8 -9 8 9 -9 8 9 1 0 9 1 0 931第第六六章章 循循环环结结构构程程序序设设计计Private Sub Form_Click()Dim A As Integer
23、,B As Integer,C As Integer,_ D As Integer Dim S1 As Integer,S2 As Integer,S3 As Integer For A=1 To 9 For B=0 To 9 For C=1 To 9 For D=0 To 9 S1=A*1000+B*100+C*10+D S2=C*100+D*10+C S3=A*100+B*10+C If S1-S2=S3 Then Print A;B;C;D End If Next D,C,B,AEnd Sub32第第六六章章 循循环环结结构构程程序序设设计计6.4 应用举例应用举例本部分内容要求自学,课外自行上机练习。本部分内容要求自学,课外自行上机练习。P101【例例6-11】P102【例【例6-12】P103【例【例6-13】33第第六六章章 循循环环结结构构程程序序设设计计本章小结本章小结1.ForNext循环结构循环结构For =To Step 1 Exit For 2Next 34第第六六章章 循循环环结结构构程程序序设设计计2.While.Wend循环结构循环结构 While WendDo While|Until 1 Exit DoExit Do 2LoopDo Exit Do Loop While|Until 3.DoLoop循环结构循环结构35
限制150内