版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章程序控制结构二循环结构主要内容1.为什么要使用循环结构?2.For…Next循环语句3.While循环4.Do…Loop循环5.循环嵌套6.循环语句使用举例
如果要编写一个程序,在窗体上输出6行“**********”,如下图所示:1.为什么要使用循环结构?
该程序最直觉的编写方法如下:1为什么要使用循环结构?PrivateSubForm_Click()
Print"**********"Print"**********"Print"**********"Print"**********"Print"**********"Print"**********"EndSub但上述程序结构让人觉得烦琐,尤其是当需要100行或1000行“**********”的话,源程序将变得很长。所以,在程序设计中,我们需要使用循环结构,来进行一系列重复的动作。在VB中,当需要对某一段程序反复执行多次,且反复执行的次数是可以预知的或可以用某种条件控制的,就可以使用循环结构。1为什么要使用循环结构?
使用循环结构,上述程序可以修改为:1为什么要使用循环结构?PrivateSubForm_Click()
ForI=1To6Print"**********"NextIEndSub
与前面的程序相比,循环结构使得程序更加清晰,功能更加强大,修改也更加方便。
在VB中,通常可以使用如下循环语句:
■For…Next语句:适合处理循环次数预知的循环问题。
■
While...Wend语句、Do…Loop语句:适合处理用循环条件控制的循环问题。1为什么要使用循环结构?
For…Next循环语句适合处理循环次数已知的循环结构。
For…Next循环语句的格式:
For<循环控制变量>=<初值>TO<终值>[Step<步长>]<循环体>
[ExitFor]Next<循环控制变量>2For…Next循环语句ForI=1To6Print"**********"NextI
For…Next循环语句的执行过程
2For…Next循环语句循环变量赋初值循环变量未超过终值?循环体循环变量加上一个步长FalseTrue功能:
当循环变量的值在初值到终值范围内时,执行一次循环体中的语句块,并使初值增加一个步长。当循环变量的值不在初值到终值范围内时,就退出循环,执行Next后面的语句。
2For…Next循环语句④注意:(1)For循环语句是先判断后执行。(2)当退出循环后,循环变量的值保持退出时的值。(3)在循环体内可多次引用循环控制变量,但最好不要给它赋值,否则会影响原来的循环控制规律。例题1计算S=1+2+3+……+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0ForI=1To100S=S+INextIPrint"1+2+3+……+100=",SEndSub■问题3:根据例题1,自己编写程序计算20!,与计算累加和相比,计算阶乘时应注意什么问题?例题2:七彩字PrivateSubForm_click()Dimi%Randomize
Fori=1To1000 Form1.CurrentX=500+i Form1.CurrentY=500+i
ForeColor=RGB(Int(256*Rnd),Int(256*Rnd),Int(256*Rnd)) Print"Hello"
NextiEndSub3While循环语句While循环又称“当”型循环,它是通过“循环条件”控制重复执行一组语句。While<循环条件> <循环体>Wend例题2:使用while语句,计算:S=1+2+3+……100的值。
Do…Loop循环语句的四种形式4Do…Loop循环语句DoWhile<条件><循环体>[ExitDo]LoopDo<循环体>[ExitDo]LoopWhile<条件>DoUntil<条件><循环体>[ExitDo]LoopDo<循环体>[ExitDo]LoopUntil<条件>
四种形式的Do…Loop语句的比较:
■四种循环结构都是以Do语句开始,而以Loop语句结束。
■若循环控制条件跟在Do语句后,则要先判断条件,再执行循环体,因此是一种当型循环;若循环控制条件跟在Loop语句后,则是先执行循环体,再判断条件
■若条件语句使用While,则当条件为真时,执行循环体,条件为假时,退出循环;若条件语句使用Until,则当条件为假时,执行循环体,条件为真时,则退出循环。4Do…Loop循环语句例题2:分别使用四种形式的Do…Loop语句,计算:S=1+2+3+……100的值。例题2-1用Do语句计算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoWhileI<=100S=S+II=I+1LoopPrint"1+2+3+……+100=",SEndSub例题2-2用Do语句计算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoS=S+II=I+1LoopWhileI<=100Print"1+2+3+……+100=",SEndSub例题2-3用Do语句计算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoUntilI>100S=S+II=I+1LoopPrint"1+2+3+……+100=",SEndSub例题2-4用Do语句计算1+…+100PrivateSubForm_Click()
DimSAsInteger,IAsIntegerS=0I=0DoS=S+II=I+1LoopUntilI>100Print"1+2+3+……+100=",SEndSub趣味问题1有一箱球(1到100个),如果一次数4个则余2个,一次数5个则余3个,一次数6个正好,问有多少个球?
无论是For循环还是Do循环,它们的循环体中还再次可以包含循环语句,这样就形成了循环嵌套(也叫多重循环)。在VB中,For循环和Do循环可以互相嵌套。5循环嵌套
循环嵌套的结构
内层循环必须完整地嵌套在外层循环之内,即内层循环是外层循环体的一部分,内外层循环不能交叉。例如:
循环嵌套的执行过程
多重循环的执行由里向外展开,即先执行内层循环,再执行外层循环。例如,一个三重循环的执行过程与钟表的秒针、分针和时针的运转类似。5循环嵌套以下程序段,每层循环各执行多少次?写出运行结果。
ForI=1To3Print"######"ForJ=1To2Print"@@@@@@" NextJNextI5循环嵌套分析
■根据前面的经验,计算阶乘可以用循环结构完成,计算阶乘的累加和也可以使用循环结构完成。
■构造两重循环,外层循环实现累加,完成和的计算;内层循环实现累乘,完成阶乘的计算。例题3:计算S=1!+2!+3!+……+20!VB程序设计基础课件例题3计算S=1!+2!+……+20!PrivateSubForm_Click()
DimSAsSingle,tempAsSingleDimIAsInteger,JAsIntegerS=0ForI=1To20
temp=1ForJ=1ToI
temp=temp*JNextJS=S+tempNextIPrint"1!+2!+……20!=",SEndSubVB程序设计基础课件6循环语句使用举例例题4:找出100~999之间的所有水仙花数。所谓水仙花数,是指这样三位数:它的各位数字的立方和等于它本身。例如:407=43+03+73
。例题5:编程输出乘法口诀例题4找出所有的水仙花数PrivateSubForm_Click()DimIAsInteger,aAsIntegerDimbAsInteger,cAsIntegerForI=100To999
a=I\100b=(I-100*a)\10c=I-100*a-10*b
IfI=a^3+b^3+c^3ThenPrintINextIEndSub例题5输出乘法口诀—1PrivateSubForm_Click()Dimi%,j%Fori=1To9 Forj=1Toi Printi*j; Nextj PrintNextiEndSubPrivateSubform_Click()ForI=1To9ForJ=1ToI
PrintI;"*";J;"=";I*J;
'不换行NextJ
Print'换行NextIEndSub例题5输出乘法口诀—2例6输出图形PrivateSubpicture1_Click()Picture1.Cls'清除图片框
n=Val(InputBox("请输入行数"))
Fori=1Ton Picture1.PrintTab(n+1-i);'控制打印起点
Forj=1To2*i-1 Picture1.Print"*";
Nextj Picture1.Print
Nex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论