第,6,章 循环结构,第,5,章 基本控制结构,循环结构,本章主要内容,5.1 Do While,Loop,循环结构,5.2 For,Next,循环,5.3,循环嵌套,5.4,算法举例,5.5 DO,循环的其它结构,涉及教材,P83-P92,内容,5.1 Do While,Loop,循环结构,引例:,1.,编程计算,1+2+3+4+5+6+7+8+9+10,的值。,2.,编程计算,1+2+3+,+100,的值。,Dim s As Integer,s=1+2+3+4+5+6+7+8+9+10,Print s,很显然,用上道题的方法来求解这道题,编写程序将会非常的麻烦。,5.1 Do While,Loop,循环结构,1,、结构格式,Do While ,Loop,这种循环结构称为,前测试当型循环,其中:,(1),条件为循环测试条件,可以是关系表达式、布尔表达式或数值表达式,如果以数值表达式作为条件,则非,0,为真,,0,为假;,(2),当条件成立时执行循环,条件不成立时退出循环,然后执行,Loop,之后的语句,5.1 Do While,Loop,循环结构,2,、结构流程图,循环前语句,循环条件,循环体语句,循环后语句,假,真,5.1 Do While,Loop,循环结构,例,5-1,:用循环结构,编程计算,1+2+3+4+5+6+7+8+9+10,的值。,例,5-2,:计算,100-99+98-97+,+2-1,的值,课堂练习:计算,1+3+5+,+99,的值,例,5-3,:用循环结构在窗体上输出如下图形,5.1 Do While,Loop,循环结构,3,、使用循环结构的注意问题:,(,1,),Loop,语句用来改变程序的执行方向,(,2,)在循环体中必须有一条语句改变循环控制变量的值,使得在某一时刻循环变量不满足条件而退出循环,否则会出现死循环。,(,3,)若循环体中加入,“,Exit Do,”,语句,程序只要运行到这条语句,循环会立即终止,去执行它所在循环的,Loop,语句之后的语句。,“,Exit Do,”,语句叫强行终止,Do,循环语句。,5.1 Do While,Loop,循环结构,例,5-4,:计算,1*2*3*,*100,的值,课堂练习:计算,1,!,+2,!,+3,!,+4,!,+5,!的值,例,5-5,:设我国现有人口为,13,亿,如果每年以,1.5%,的平均速度增长,问多少年后我国人口达到或超过,18,亿。,课堂练习:求自然对数,e,的近似值,当任意项的值小于,10,-4,时结束计算,近似公式为:,5.2 For,Next,循环结构,对于已知循环次数的循环,VB,还专门提供了一种控,制结构,那就是,For,Next,循环。,1,、结构格式:,For,循环变量,=,初值,To,终值,Step,步长,Next,循环变量,强调:,Next,语句有两个功能:,(,1,)改变程序执行方向,(,2,)给循环变量加步长,即,循环变量,=,循环变量,+,步长,5.2 For,Next,循环结构,说明:,(1),循环变量必须是数值型,且最好为整型变量。,(2),当步长为正时,初值必须小于终值;当步长为负时,初值必须大于终值,循环才能进行。当步长为,1,时,,“,Step 1,”,可以省略。,(3),正常情况下,,For,Next,循环的循环次数可以用公式算出来:,(4),若一个,For,Next,循环没有执行,那它的作用只相当于对循环变量赋了一次初值。,(5),在,For,Next,结构中,若有,“,Exit For,”,语句,程序执行到此语句会跳出循环,执行,Next,语句之后的语句。,5.2 For,Next,循环结构,例,5-6,:用循环结构,编程计算,1+2+3+4+5+6+7+8+9+10,的值。,例,5-7,:计算,100-99+98-97+,+2-1,的值,课堂练习:计算,1+3+5+,+99,的值,例,5-8,:计算,1*2*3*,*100,的值,课堂练习:计算,1,!,+2,!,+3,!,+4,!,+5,!的值,思考 能否用,For,Next,循环结构编程计算例,6-5,设我国现有人口为,13,亿,如果每年以,1.5%,的平均速度增长,问多少年后我国人口达到或超过,18,亿。,5.2 For,Next,循环结构,例,5-9,:将可打印的,ASCII,码制成表格输出,使每个字符与它的编码值对应起来,每行打印,7,个字符。,5.2 For,Next,循环结构,例,5-10,已知一个数列第一项为,1,,从第,2,项开始,每项等于前一项加,3,,求数列中前,20,项的值,课堂练习:已知一个数列的前两项均为,1,,从第三项开始,每一项为其前两项之和,求这个数列的前,20,项。,例,5-11,从键盘上输入若干个数,求其平均值,当输入的数为,-9999,时表示输数结束。,5.3,循环嵌套,引例,1,:在窗体上一行打印,10,个,“,*,”,引例,2,:在窗体上打印,10,行,“,*,”,,每行打印,10,个。,1,、概念,当选择结构中满足或不满足条件的语句组又是一个选择结构时,这种结构叫做选择嵌套。,当循环中循环体又是一个循环结构,这种形式叫做,循环嵌套,。,2,、注意事项,(1),内外嵌套不能交叉,外层要完全包含内层。,(2),在循环嵌套中,内外循环的循环变量不能同名。,(3),采用缩进格式书写代码可以有效地防止嵌套混乱。,5.3,循环嵌套,3,、例题,6-14,:用循环嵌套结构在窗体上输出一个由,“,*,”,组成的三角形。,方法,1:,单循环结合串函数实现,Private Sub Form_Click(),For i=1 To 10,Print String(i,*),Next i,End Sub,方法,2:,双重循环实现,Private Sub Form_Click(),For i=1 To 10,For j=1 To i,Print*;,Next j,Print,Next i,End Sub,5.3,循环嵌套,例,5-15,打印九九乘法口诀表,6.3,循环嵌套,例,5-12,设计一个猜数字游戏,计算机随机产生一个,0,100,之间的数,给,8,次机会,每猜一次通过键盘输入,计算机可以给出,“,大了点!,”,、,“,小了点!,”,、,“,猜中了,”,三种提示,当出现,“,猜对了,”,时,程序结束,如果,8,次都猜不中,用消息框给出正确结果。,相传古代印度国王要奖励其聪明能干的,丞相,问他需要什么,丞相回答,:,“,国王只要在国际象棋的第一个格子上放,1,粒麦子,第二格子上放,2,粒麦子,第三格子上放,4,粒麦子,.,依次放到,64,格,我就满足了。,”,,国王想这有何难,让人按次方法给,结果全印度小麦全部用完都还不够。为什么?,应用举例,1,:,相传古代印度国王要奖励其聪明能干的丞相,问他需要什么,丞相回答,:,“,国王只要在国际象棋的第一个格子上放,1,粒麦子,第二格子上放,2,粒麦子,第三格子上放,4,粒麦子,.,依次放到,64,格,我就满足了。,”,,国王想这有何难,让人按次方法给,结果全印度小麦全部用完都还不够。为什么?,注意:,1,米,3,=1.42X10,8,棵,体积,1.3,10,11,米,3,相当于全国土地铺满,1.3,厘米厚的小麦,相当我国几百年产量。,应用举例,2,:百元买百鸡,古代,算经,题:鸡翁,1,,值钱,5,;母鸡,1,,值钱,3,;鸡雉,3,,值钱,1,。百鸡买百鸡,问鸡翁、母鸡、鸡雉各几何?,应用举例,3,:,古典数学计算:,假设有,1,对兔子,从出生后,3,个月开始,每个月都生,1,对小兔子。问,,1,年可以有多少兔子?,5.4,简单应用,一、求素数,例,5-13,从键盘输入一个数,m,,判断是否为素数。,课堂练习:从键盘输入一个数,m,,判断是否为素数,用,Do While,loop,结构实现。,例,5-14,求,1-100,之间的素数,每行输出,5,个,分多行输出。,例,5-15,求最初的,100,个素数,每行输出,10,个,分多行输出。,5.4,简单应用,二、求最大值、最小值,例,5-16,用随机函数产生,10,个,10,,,99,之间的随机整数,找出其中最大值。,三、求最大公约数与最小公倍数,例,5-17,从键盘上输入两个整数,M,,,N,,求最大公约数和最小公倍数。,求最大公约数最常用的是辗转相除法。思路是:,(1),将,m,除以,n,得余数,r,;,(2),若,r=0,,则,n,为求得的最大公约数,循环结束;若,r0,,则执行(,3,);,(3),将,n,赋给,m,,将,r,赋给,n,,再重执行(,1,)、(,2,)步。,四、求数列,求斐波那契数列,5.5 Do,循环的其它结构,一、无条件循环,Do,Loop,Do,循环体,Loop,二、后测试当型循环,Do,Loop While,Do,循环体,Loop While,循环体,条件,真,假,循环体,5.5 Do,循环的其它结构,三、前测试直到型,Do Until,Loop,Do Until ,循环体,Loop,四、后测试直到型循环,Do,Loop Until,Do,循环体,Loop Until ,循环体,条件,真,假,循环体,条件,假,真,5.5 Do,循环的其它结构,例:,设我国现有人口为,13,亿,如果每年以,1.5%,的平均速度增长,问多少年后我国人口达到或超过,18,亿,作业与实习,作业,1.,一个数恰好等于它的因子之和,这个数就称为,“,完数,”,。例如,,6,的因子为,1,、,2,、,3,,而,6=1+2+3,,因此,6,是,“,完数,”,。编程找出,1000,之内的所有完数。,2.,一球从,100m,高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第,10,次落地时,共经过多少米?第,10,次反弹多高?,实习,课本,P106-107,4,、编程题(,3,),(,4,),,(,5,),,(,6,),(,8,),(,9,),