1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,循环结构,计算机具有速度快、精度高的特点,特别适于进行重复性的工作,重复次数越多越能显示它的威力。,循环是一组重复执行的指令,重复次数由条件决定。如果是无条件循环,循环体代码将永无休止地执行下去,(,即死循环,),,这种情况当然应该避免。,指定循环的方法有以下两种,一是指定一个条件式,一旦表达式的值为,True(,或者是,False),就退出循环;另一种是指定循环次数。,格式:,for,循环变量,=,初值,to,终值,step,步长,语句块,【exit for,语句块,】,Next,循环变量,功能:
2、重复执行语句块,直到循环变量超出终值时结束,循环次数,=,For,Next,循环结构,注意:,(1),循环变量应与初值、终值的数据类型一致,(2),步长可以是正数、也可以是负数,(3),可以是一个语句,也可以是多个语句,(4),有时在,next,循环变量之前会有,Exit for,遇到该句,退出循环,(5),若步长值为,1,,则,Step 1,可以省略,例题:比较下列两部分代码,输出结果是否相同?若不同,各是什么结果?,For i=1 To 5 For i=1 To 5,Next i Print i,Print i Next i,【,例,1】,求,S=1+2+3+8,采用,Print,直接在
3、窗体上输出结果,程序代码:,Private Sub command1_click(),s=0,For k=1 To 8,s=s+k,Next k,Print s=;s,End Sub,程序运行结果如下:,s=36,例,2,:编程求,8,!,=,?,Private sub form_click(),Dim,p,i,n,P=1,For i=1 to 8,P=p*i,Next i,Print n;”!=”;p,End sub,重要思想:,连乘:,t=t*c,其中,t,初始值一般置为,1,,,c,表示有规律的表达式,累加:,t=t+c,其中,t,初始值一般为,0,,,c,表示有规律的表达式,思考:,1
4、求,1,100,的,5,或,7,的倍数的和,2.,用,fornext,结构来输出,1100,的偶数,Do,Loop,循环结构,若事先不知道循环次数,可以使用当型循环,Do.Loop,Do.Loop,两种格式:前测型循环结构和后测型循环结构。两者区别在于判断条件的先后次序不同,1.,前测型,Do.Loop,循环,格式,1,:,Do While,循环体,Loop,Do While.Loop,语句的功能:,当条件为真时,执行循环体;当条件为假时,终止循环。,格式,2,:,Do Until,循环体,Loop,Do Until.Loop(,直到型循环,),语句的功能:,当条件为假时,执行循环体,直到
5、条件为真时,终止循环。,2.,后测型,Do.Loop,循环,语句格式如下:,Do,循环体,Exit Do ,在特定条件下退出循环,语句,Loop While,或者,Do,循环体,Exit Do ,在特定条件下退出循环,语句,Loop Until,注意:本语句执行循环的最少次数为,1,,而前测型,Do.Loop,语句的最少次数为,0(,即一次都不执行循环,),。,举例:,用不同的循环语句编写程序求,1,到,100,的和。,方法,1,:方法,2,:,i=1 i=1,Do while i100,s=s+i s=s+i,i=i+1 i=i+1,Loop,Loop,Print s Print s,方法,
6、3,:方法,4,:,i=1 i=1,Do Do,s=s+i s=s+i,i=i+1 i=i+1,Loop while i100,Print s Print s,方法,5,:,S=0,For I=1 TO 100,S=S+I,Next I,End Sub,例:在窗体上有两个文本框和一个命令按钮,程序运行后,单击命令按钮,在两个文本框中显示的值分别为:,private sub command1_click(),x=0,do while x50,x=(x+2)*(x+3),n=n+1,loop,text1.text=,str(n,),text2.text=,str(x,),End sub,2 72,
7、While,Wend,循环:(类似于,Do While,Loop,),格式为:,While,Wend,执行过程:,条件为,True,,执行循环体,遇到,Wend,语句后,返回到,While,语句并再对条件进行测试,如为,True,,则继续执行循环体,如为,False,,则退出循环体。,例1:以下程序段的输出结果是:,dim y as integer,y=10,while y0,y=y-1,wend,print y=;y,y=0,例2:以下程序段的输出结果是:,num=0,while num=2,num=num+1,print num,Wend,1,2,3,例,3,:以下程序段的输出结果是:,dim m as integer,m=1,while m5 or x=15 Then,Exit For,Else,K=k+1,End if,Next k,Print k,b,运行后,结果是,_,答案是:,5 15,例:将,100,元换成零钱(,5,元、,10,元、,20,元中的任意多个面值)。有多少种方法,?,分析:组成,100,的零钱中,最多,20,个,5,元,,10,个,10,元,,5,个,20,元,判断所有组合,总共正好,100,元,上机练习,