第六章 循环结构_第1页
第六章 循环结构_第2页
第六章 循环结构_第3页
第六章 循环结构_第4页
第六章 循环结构_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章VB循环结构,指导老师:李赛红lsh427,引入,要计算1+2+3+4+.+100的和。,6.1For循环控制结构,格式:For循环变量=初使值To终值Step步长循环体ExitForNext循环变量当步长为1时,step部分可以省略。,注意1:next与for成对出现!,举例,1+2+3+.+100的和Sum=0Fori=1to100Sum=sum+iNextiPrintsum,Sum=0Fori=100to1step-1Sum=sum+iNextiPrintsum,执行过程,1.计算循环中表达式的值;2.赋初值;(1与2只做一次)3.判循环变量的值是否超过终值,如果未超过,则执行循环体;如果超过了,则退出循环。4.做完循环体后,到Next语句,循环变量增加一个步长;转3:判别操作。,ForI=10-9To45+5Step3-2Print*;NextI,循环次数,注意事项循环次数:Int(e2-e1)/e3)+1ExitFor是终止循环运行。例:Fors=2To100Step2.Nexts循环次数=Int(100-2)/2)+1=50次,以下两种情况一次也不会执行:1、如果step步长为正数,而初值大于终值。2.如果step步长为负数,而初值小于终值时。,举例,例:求1-100之间所有奇数的和。Dimsumasintegersum=0ForI=1to100step2Sum=sum+INext举一反三,求1-100之间所以有偶数的和。,注意2:next后的循环变量也可缺省,求10!=1*2*3*4*.*10Dimsasintegers=1ForI=1to10s=s*INext,求多个数的和与连乘积,求若干个数之和或连乘积,可采用“累加”或“累乘”法。累加变量初值为0累乘变量初值必须为1,循环变量的值,1、如果循环正常结束,循环变量的值如何?例:Fori=1To10Step2Printi;NextiPrinti=;i,i=11,2、给定一个循环,首先要判断循环是否一次也不做。如果循环一次也不做,循环变量的值如何?例:s=0Fori=10To1s=s+iNextiPrints,i,i=10,3、如果循环非正常结束(异常终止),循环变量的值如何?例:s=0Fori=1To10Step2s=s+iIfi=5ThenExitForNextiPrintI=;IPrintS=;s,i=5,例,判断正整数是否为素数,X=97ForI=2ToSqr(X)IfXModI=0ThenExitForNextIIfISqr(X)ThenprintStr(X)+是素数!ElseprintStr(X)+不是素数!EndIf,上机举例,编写程序,由用户输入十个学生的成绩,输出不及格的学生人数,并求出所有学生的平均成绩。,上机举例,DimscoreAsIntegerDimsumAsInteger,countAsIntegersum=0count=0Fori=1To10Step1score=InputBox(请输入第sum/10,上机举例,求+的和DimsumAsSinglesum=0Fori=2To20Step2sum=sum+1/iNextiPrintsum,(2012年9月第21题),现有以下程序:PrivateSubCommand1_Click()c1=0c2=0Fori=1To100IfiMod3=0Thenc1=c1+1ElseIfiMod7=0Thenc2=c2+1EndIfNextPrintc1+c2EndSub此程序运行后输出的是在1100范围内A)同时能被3和7整除的整数个数B)能被3或7整除的整数个数C)能被3整除,而不能被7整除的整数个数D)能被7整除,而不能被3整除的整数个数,答案:B,(2011年9月第21题),设有如下程序:PrivateSubForm_Click()DimsAsLong,fAsLongDimnAsInteger,iAsIntegerf=1n=4Fori=1Tonf=f*is=s+fNextiPrintsEndSub程序运行后,单击窗体,输出结果是()。A)32B)33C)34D)35,答案:B,(2011年9月第24题),设有如下程序:PrivateSubForm_Click()DimiAsInteger,xAsString,yAsStringx=ABCDEFGFori=4To1Step-1y=Mid(x,i,i)+yNextiPrintyEndSub程序运行后,单击窗体,输出结果为()。A)ABCCDEDEFGB)AABBCDEFGC)ABCDEFGD)AABBCCDDEEFFGG,答案:A,(2011年3月第25题),下面程序的执行结果是()。PrivateSubCommand1_Click()a=10Fork=1To5Step-1a=a-kNextkPrinta;kEndSubA)-56B)-5-5C)100D)10l,答案:D,(2009年9月第23题),在窗体上画1个命令按钮,并编写如下事件过程:PrivateSubCommandl_Click()Fori=5To1Step-0.8PrintInt(i);NextiEndSub运行程序,单击命令按钮,窗体上显示的内容为()。A)543211B)54321C)43211D)443211,答案:A,(2009年3月第20题),阅读程序:PrivateSubCommand1_Click()a=0Forj=1To15a=a+jMod3NextjPrintaEndSub程序运行后,单击窗体,输出结果是A)105B)1C)120D)15,答案:D,6.2当循环控制结构,格式:While条件语句块Wend当条件为“真”时,执行语句块如果条件一直为真,就会一直执行。,举例,求1+2+3+4+100Sum=0i=1Whilei=100sum=sum+ii=i+1WendPrintsum,上机试验,请输入多个数字,对输入的数字进行计数,直到输入的数字为-1才停止输入。Dimnumasinteger,countasintegerCount=0Num=val(inputbox(“请输入数字:”)While(num-1)Count=count+1Num=val(inputbox(“请输入数字:”)WendPrint“数字个数为”;count,上机练习,编写程序,使应用程序启动时,要求用户输入正确的口令,如果口令不正确,则会重复弹出输入对话框等待输入口令,如果口令正确才能打开应用程序。,(2007年4月第27题),为了计算1+3+5+99的值,某人编程下列:k=1:s=0Whilek=99k=k+2s=s+kWendPrints在调试时发现运行结果有错误,需要修改。下列错误原因和修改方案中正确的是()。A)WhileWend循环语句错误,应改为Fork=1To99NextkB)循环条件错误,应改为Whilek99C)循环前的赋值语句k=l错误,应改为k=0D)循环中两条赋值语句的顺序错误,应改为s=s+k:k=k+2,答案:D,6.3DO循环控制结构,DO循环的格式:(1)DoWhile/Until循环条件语句块ExitDoLoop注意:dowhile是当条件成立时执行循环。而dountil是当条件不成立时执行,直到条件成立时退出循环。,6.3DO循环控制结构,(2)Do语句块ExitDoLoopWhile/Until循环条件注意:和第一种DO循环的不同,第一种是先判断循环条件是否是成立,后执行语句块。第二种是先执行后判断。,举例,1+2+3+4+.+100,DoWhile条件Do.ExitDoExitDo.LoopLoopWhile条件,DoDoUntil条件.ExitDoExitDo.LoopUntil条件Loop,EXITDO,遇到ExitDo语句时,就会直接退出本层循环,转而执行Loop语句的下一条语句。此语句最常用的形式是与If-Then语句相结合IfeThenExitDo,求菲波拉列数,1123581321后一项是前两项之和,第一、二项的值为1,1。求不大于200的最大菲波拉列数a=1:b=1:c=0dowhilea+b200c=a+ba=b:b=c:loopprintc,a=1:b=1:c=0dowhilea+b200c=a+ba=b:b=c:loopprintc,a=1:b=1:c=0doc=a+ba=b:b=c:loopwhilea+b=5x=a*bPrintb;xa=a+bb=b+aLoopEndSub程序运行后,单击窗体,输出结果是()。A)11B)11C)11D)1123243836,答案:D,(2010年9月第23题),以下程序段的输出结果是()x=1y=4DoUntily4x=x*yY=y1LoopPrintxA)1B)4C)8D)20,答案:B,6.4多重循环嵌套,PrivateSubForm_Click()Fori=1To9Forj=1ToiPrinti;*;j;=;i*j;NextjPrintNextiEndSub执行本程序,窗体上将显示九九乘法表。,编写程序,输出100300间的所有素数。ForI=100To300Forj=2ToSqr(I)IfIModj=0ThenExitForNextjIfjSqr(I)ThenPrintI,NextI,(2011年9月第22题),阅读下面的程序段:a=0Fori=1To3Forj=1ToiFork=jTo3a=a+1NextkNextjNexti执行上面的程序段后,a的值为()。A)3B)9C)14D)21,答案:c,(2011年3月第27题),设有如下程序PrivateSubCommand1_Click()x=10:y=0Fori=1To5Dox=x-2y=y+2LoopUntily5Orx-1NextEndSub运行程序,其中Do循环执行的次数是()。A)15B)10C)7D)3,答案:c,(2009年3月第18题),假定有一下程序段Fori=1To3Forj=5To1Step-1Printi*jNextjNexti则语句Printi*j的执行次数是A)15B)16C)17D)18,答案:A,(2008年9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论