VB循环结构程序设计课件_第1页
VB循环结构程序设计课件_第2页
VB循环结构程序设计课件_第3页
VB循环结构程序设计课件_第4页
VB循环结构程序设计课件_第5页
已阅读5页,还剩15页未读, 继续免费阅读

下载本文档

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

文档简介

3.3循环语句程序的另一种结构是循环结构循环结构作用是重复执行一段程序循环是有条件的、次数是有限的VB的循环语句:For…Next、DoWhile…LoopForEach…Next、While…Wend

应用最多的:For…Next与DoWhile…Loop返回目录3.3循环语句程序的另一种结构是循环结构返回目录13.4循环语句-For…Next循环For…Next循环一般应用于循环次数已知的场合For<循环变量>=初值To终值[Step步长]语句块(循环体)Next[循环变量]

工作原理

返回目录循环变量=初值循环变量超出范围?循环体循环变量增加一个步长NoYesStep缺省为1

3.4循环语句-For…Next循环For…Next循环23.4循环语句-For…Next循环[例3.9]求1+3+5+7+…+99PrivateSubForm_Click()DimSumAsInteger,IAsIntegerSum=0'保存累加和,先清零

ForI=1To99Step2Sum=Sum+INextIMsgBox"1+3+5+…+99="&Sum,,"求和"EndSub

返回目录本例的特点是数据项之间相差2,即Step的值为2

思考:例中当输出对话框出现时,I的值是多少?如果省略Step2,程序的结果如何?For语句能不能改写成ForI=99To1Step-2?

3.4循环语句-For…Next循环[例3.9]求1+33.4循环语句-For…Next循环[例3.10]求平均成绩

ConstN=10

'学生人数PrivateSubForm_Click()DimSumAsInteger,IAsIntegerDimDataAsInteger,AverageAsSingleSum=0'存放累加值的变量清零

ForI=1ToN

'循环40次,步长值为1省略Data=InputBox("输入第"&I&"位同学的成绩","求平均分")Sum=Sum+Data

NextIAverage=Sum/NMsgBox"全班"&N&"名学生的平均分为"&Average,,"求平均分"EndSub

返回目录确定本例的循环变量I控制人数3.4循环语句-For…Next循环[例3.10]43.5循环语句-Do…Loop循环1.当型循环

返回目录DoWhile<条件表达式>循环体LoopDo循环体LoopWhile<条件表达式>

条件表达式成立?循环体NoYes条件表达式成立?循环体NoYes先判断后执行

先执行后判断特点:条件表达式成立执行循环体内容

3.5循环语句-Do…Loop循环1.当型循环返回目53.5循环语句-Do…Loop循环[例3.12]计算平均分

PrivateSubForm_Click()DimDataAsInteger,SumAsInteger,NAsIntegerDimAverageAsSingleSum=0:N=0Data=InputBox("输入第"&N+1&"个同学的成绩","求平均分")DoWhileData<>-1

'-1表示结束输入Sum=Sum+DataN=N+1Data=InputBox("输入第"&N+1&"个同学的成绩","求平均分")

LoopAverage=Sum/NMsgBoxN&"位同学的平均分为"&Average,,"求平均分"EndSub返回目录3.5循环语句-Do…Loop循环[例3.12]计算平63.5循环语句-Do…Loop循环[例3.13]Sum=1+2+3+…+N求Sum不超过10000的最大整数值和数据项数N

PrivateSubForm_Click()DimSum,NAsIntegerN=0'开始时项数为0Sum=0'保存累加值的变量Sum清零DoWhileSum<=10000N=N+1Sum=Sum+NLoopSum=Sum-NN=N-1Print"Sum=";Sum,"N=";NEndSub返回目录当Sum的值超出10000时循环才终止。因此Sum值要减去多加的一个N;而在循环过程中,N也被多加了一个1,需要减去。

3.5循环语句-Do…Loop循环[例3.13]Sum73.5循环语句-Do…Loop循环2.直到型循环

返回目录DoUntil<条件表达式>循环体LoopDo循环体LoopUntil<条件表达式>特点:条件表达式不成立执行循环体内容

先判断后执行

条件表达式成立?循环体NoYes先执行后判断条件表达式成立?循环体NoYes3.5循环语句-Do…Loop循环2.直到型循环返回83.5循环语句-Do…Loop循环[例3.14]计算平均分(要求同例4.12)

PrivateSubForm_Click()DimDataAsInteger,SumAsInteger,NAsIntegerSum=0:N=0Data=InputBox("输入成绩","计算总分")DoUntilData=-1Sum=Sum+DataN=N+1Data=InputBox(“输入成绩","计算总分")

LoopPrint"全班平均分为:";Sum/NEndSub返回目录DoWhileData<>-1

Sum=Sum+DataN=N+1Data=InputBox(“输入成绩","计算总分")

Loop3.5循环语句-Do…Loop循环[例3.14]计93.6循环语句-两重循环两重循环:在一个循环的循环体中还包含另一个循环[例3.15]在窗体上显示一个几何图形PrivateSubForm_Click()DimI,JAsInteger'I、J为循环变量

ForI=1To8'I控制行数(8行)PrintTab(10-I);'定每行*的起始位

ForJ=1ToI

'J控制每行输出I个*

Print"*";

NextJPrint'换行

NextIEndSub返回目录注意:两重循环不能形成交叉3.6循环语句-两重循环两重循环:在一个循环的循环体中还103.6循环语句-两重循环[例3.16]输出乘法口诀表PrivateSubForm_Click()DimIAsInteger,JAsInteger,MAsIntegerForI=1To9

ForJ=1ToIM=I*JPrintJ&"*"&I&"="&M&"";NextJPrint'打印换行NextIEndSub返回目录3.6循环语句-两重循环[例3.16]输出乘法口诀表返113.6循环语句-两重循环[例3.17]计算

PrivateSubForm_Click()DimIAsInteger,JAsIntegerDimFAsLong'阶乘值用长整型保存DimeAsDouble

ForI=0To10F=1'每个阶乘值先置1以便累乘

ForJ=1ToIF=F*JNextJe=e+1/F

NextIPrint"e=";eEndSub返回目录本循环计算F=I!3.6循环语句-两重循环[例3.17]计算返回目录本123.6循环语句-多重循环多重循环:循环次数在两重以上的循环结构

[例3.19]计算将1角钱兑换成零钱有多少种方案

PrivateSubForm_Click()DimI,J,K,SAsIntegerS=0'统计兑换1角钱的方案数

ForI=0To10

'1分钱个数

ForJ=0To10Step2

'2分钱个数

ForK=0To10Step5'5分钱个数IfI+J+K=10ThenS=S+1NextK

NextJ

NextIMsgBox"1角钱兑换成零钱的方案有"&S&"种",,"兑换零钱"EndSub返回目录1角钱以下的硬币有1分、2分和5分种1角钱全换成1分需10个1角钱全换成2分需5个1角钱全换成5分需2个

3.6循环语句-多重循环多重循环:循环次数在两重以上的循133.7其他语句-Exit与End

1.Exit语句ExitDo:跳出Do…Loop循环ExitFor:跳出For…Next循环[例4.20]判断一个正整数是否为素数(质数)N=InputBox("请输入一个正整数","验证素数")ForI=2ToN-1IfNModI=0Then

ExitForEndIfNextIIfI=NThenMsgBoxN&"是素数",,"验证素数"ElseMsgBoxN&"不是素数",,"验证素数"EndIf返回目录

素数:一个正整数N除了能被1和自身所整除外,不能被其它任何数所整除。3.7其他语句-Exit与End1.Exit语句返回目143.7其他语句-Exit与End

2.End语句End:终止程序的运行EndSub:终止一个过程;EndFunction:终止函数过程EndIf:终止条件语句EndType:终止类型声明EndSelect:终止情况语句EndProperty:终止属性过程EndWith:终止With语句返回目录例如:PrivateSubCommand1_Click()

EndEndSub

3.7其他语句-Exit与End2.End语句返回目录153.7其他语句-Goto功能:无条件转向格式:Goto<label>label称为语句标号(数字或标识符)[例3.22]求若干个同学的成绩总分

PrivateSubForm_Click()DimData,SumAsIntegerSum=0loop1:Data=InputBox("输入成绩")IfData=-1Then

GoToloop2ElseSum=Sum+Data

GoToloop1EndIfloop2:Print"总分=";SumEndSub返回目录

Goto语句不符合结构化程序设计的要求,所以不提倡使用。3.7其他语句-Goto功

温馨提示

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

评论

0/150

提交评论