预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

循环结构一、循环程序设计结构1、For…Next循环结构 编程计算:S=1+2+3+…+100 说明④如果要在循环变量到达终值前退出循环,可用ExitFor语句来实现。该语句可以在For循环中出现多次,且位置不限。2、Do…Loop循环结构⑴.DoWhile…Loop语句说明: ①条件表达式可以是一个逻辑表达式,也可以是一个关系表达式,其值应是逻辑型。 ②DoWhile/Until和Loop应成对出现。 ③循环体中要有控制循环的语句,以避免出现死循环。 ④由于该循环的特点是先判断条件,然后再决定是否要执行循环体里的语句。所以,这种循环可以一次也不执行循环体。 ⑤ExitDo表示当遇到该语句时,强制退出循环,执行Loop后的下一条语句 例:对比以下两段程序,分别写出其执行结果功能:当While的条件表达式的值是True时执行循环体内的 代码,直到While后的条件表达式的值为False。 说明:它与Do…Loop语句的差别是: While…Wend语句中不能使用Exit语句跳出循环。例题假设我国现有人口12亿,若年增长率为1.5%,试计算多少年后我国人口增加到或超过20亿。 【分析】人口计算公式为:p=y(1+r)n y为人口初值,r为年增长率,n为年数。PrivateSubForm_click() Dimp!,r!,I% p=12 r=0.015 I=0 Whilep<20 p=p*(1+r) I=I+1 Wend PrintI;"年后,我国人口将达到";p;"亿" EndSub几种循环语句比较练习: 1、求100~200之间不能被3整除的数。 2、判断一个数是否为质数。 4、验证哥德巴赫猜想:任意一个大于等于6的偶数都可以分解为两个质数之和。 基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数, 分别检查n1和n2是否为素数,如都是,则为一组解。 如n1不是素数,就不必再检查n2是否素数。先从n1=3开始, 检验n1和n2(n2=N-n1)是否素数。然后使n1+2 再检验n1、n2是否素数,…直到n1=n/2为止。二、循环的嵌套——多重循环结构(1)ForI=…. ….. ForJ=…. …. NextJ ….. NextI例题:在窗体上输出100以内质数(又称素数)。 PrivateSubCommand1_Click() DimvalueAsInteger DimcounterAsInteger DimnumAsInteger Me.Cls Forvalue=2To100 Forcounter=2Tovalue-1 IfvalueModcounter=0Then ExitFor EndIf Next Ifcounter=valueThen Printvalue;Tab; num=num+1 IfnumMod3=0ThenPrint EndIf Next Print Print"100以内的质数有"&num&"个" EndSub例题:在文本框内输出水仙花数。 PrivateSubcommand1_Click() Dimx%,y%,z%,n% Forx=0To9 Fory=0To9 Forz=1To9 Ifx^3+y^3+z^3=x+y*10+z*100Then text1.text=x^3+y^3+z^3 EndIf Next Next Next Endsub我国古代数学家章丘建在“算经”里提出一个世界数学史上有名的百钱百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏一,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?例题:打印九九乘法表 Fori=1To9 Forj=1To9 e=i&"×"&j&"="&i*j PrintTab((j-1)*9+1);e; Nextj Print Nexti例题:打印九九乘法表 Fori=1To9 Forj=1Toi e=j&"×"&i&"="&i*j PrintTab((j-1)*9+1);e; Nextj Print Nexti跳转语句三、程序调试——错误类型2、运行错误如果使用,则OptionExplicit语句必须出现在文件中其他所有源语句之前。 当OptionExplicit出现在文件中时,必须使用Dim、Private、Public或ReDim语句显式声明所有变量。试图使用未声明的变量名将发生编译时错误。3、逻辑错误三、程序调试——调试和排错调试和排错-插入断点