(完整版)DO-While-Loop循环语句_第1页
(完整版)DO-While-Loop循环语句_第2页
(完整版)DO-While-Loop循环语句_第3页
(完整版)DO-While-Loop循环语句_第4页
(完整版)DO-While-Loop循环语句_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

DoWhile--Loop循环语句通过下面的一个小程序来复习

一下上节课学习的for循环语句程序如下:DimiAsInteger,sAsIntegers=0Fori=1To100Step2s=s+iNextiPrintsFor循环变量=初值

To

终值

Step步长语句块(循环体)Next循环变量For循环语句是用来解决循环次数事先能确定的问题的循环次数=int((终值-初值)/步长+1)

的整数

但是对于只知道控制条件,但不能预先确定需要执行多少次循环体的情况(如下面例题),我们怎么办咧。小明今年17岁了,她的生日正好是植树节3月12日。今年植树节老师带学生去公园植树,小明很高兴,一个人就栽了3颗树。她想,如果从明年开始每年过生日的时候都去植树,并且每一年都要比前一年多栽一棵树,这样下去,到多少岁才能累计到或超过100颗呢?问题:分析:初值为17,步长为1,终值?这个问题中的循环次数是未知的,所以用For循环语句无法解决。要解决这类问题,就要用到循环语句的另一种语句do循环语句。具体问题具体求解:1.将问题转化为:当Tree>=100时,求Age的值

2.设计算法

(1)循环体内容:Age=Age+1

Tree=Tree+Age-14

(2)退出循环体条件:Tree>=100代码:DimAgeAsInteger,TreeAsIntegerAge=17Tree=3DowhileTree<100Age=Age+1Tree=Tree+Age-14LoopPrint“年龄为:”;AgeDo…Loop循环语句

Do

While

<条件表达式>

语句块(循环体)

Loop说明:当条件为真,执行循环体,否则结束循环本章目录Do语句的格式有多种,常用的Do语句格式如下:注意:先判断后执行,有可能一次也不执行执行过程为:先计算条件表达式的值,并进行判断,当表达式的值为True(非0)时(条件成立),执行语句(循环体)一次,遇到loop语句后,再次计算表达式,若仍为True,重复执行循环体……如此一直循环到表达式的值为False(是0)时,结束循环do语句,转去执行后续语句。首先判断条件是否成立,若条件成立,则执行循环语句。遇到Loop语句后,再次判断条件是否成立,若成立,继续执行循环语句,如此不断重复,当条件不成立时,则终止Do语句的执行。T循环体语句表达式的值Loop下面的一条语句F代码:DimAgeAsInteger,TreeAsIntegerAge=17Tree=3DowhileTree<100Age=Age+1Tree=Tree+Age-14LoopPrint“年龄为:”;Age例1:计算s=1+2+3+4+5的值分析:循环初始条件:循环体:循环条件:S=0,i=1S=S+i,i=i+1i<=5从1开始将连续的自然数相加,当i不大于5时执行循环,否则结束,并输出总和。(用S表示和,用i表示自然数。)开始S=0,i=1S=S+ii=i+1i<=5结束输出STF例1:计算s=1+2+3+4+5的值开始S=0,i=1S=S+ii=i+1i<=5结束输出STFs=0i=1Dowhiles=s+ii=i+1Loop

Prints循环体条件i<=5当使用While<条件>构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。DimsAsInteger,iAsIntegers=0i=1DoWhilei<=100

s=s+ii=i+1LoopPrint“s=",ss=0Fori=1to100Step1s=s+iNextiPrint“s=”s例题用Do语句计算1+…+100否是输出si<=100?i=i+1i=1开始结束s=0s=s+iFor和DoLoop的比较采用For语句比DoLoop更加简明。一般情况下,能够预先确定循环次数时,应优先采用For语句,否则的话应该使用DoLoop语句相同点:dowhile-loop和for每次执行循环体前必须保证条件表达式的值为T。如果第一次条件表达式值就为F,则循环体一次都不被执行。不同点:dowhile-loop一般适合编写循环次数不固定的循环。for循环一般适合编写循环次数固定的循环。

分析问题,得出答案PrivateSubCommand1_Click()

DimSasInteger,MasInteger

S=0

M=1

DoWhileM<=10

S=S+M

__________________

Loop

PrintsEndSubM=M+1说明:划线处代码是M=M+1,每执行完一次循环,M都增加1。在这个程序中,此语句十分重要,如果缺少,就会出现条件M<=10永远成立的情况,程序将会无限地循环。因此在使用Do语句时,必须注意条件表达式中的变量值的变化方式,有可能会出现无限循环的情况。用Do循环语句编写求s=1+2+3+…+10的程序,将划线处补充完整。分析并完善程序a=1:b=0dowhilea<=3a=a+1b=b+a*aLoopprinta,b运行的结果是

____________________429分析并完善程序已知S=1+2+3+……..+N,找出一个最大的整数N,使得S<300.S=0N=0DoWhile______N=N+1S=S+N____________N=N-1print“最大整数N为:”;NS<300Loop循环举例问题:

求:s=1+2+3+4+5+……+100

分析:用循环实现

1.求和结果存放在变量s中,s的初值应:

s=02.循环控制变量用i表示,i从1,2,3,……100,变化到1003.求和的过程就是让变量i从1开始,2,3...到100,要循环(反复)执行:s=s+i循环举例问题:

求:s=1+2+3+4+5+……+100DimiAsIntger,sAsIntger'i是循环控制变量,s结果变量s=0

'初始值0,作为累加器(清零)i=1DoWhilei<=100

s=s+i

i=i+1LoopForm.Print"1到100累加和=";s练习1、有如下VB程序段:s=0:i=1Dowhilei<=10ifimod2=0thens=s+ii=i+1elsei=i+1endifLoopPrints执行完后其计算结果是:A、30B、0C、10D、202、若s=1*2*3*4*……*n,下列vb程序的功能是求s不大于1000时的最大n值。DimsAsInteger,nAsIntegers=1:n=1Dowhile❶n=n+1❷LoopPrint“n=”;n-1请将程序中横线处补充完整,❶和❷分别是A、

❶s<=1000,❷s=s*nB、

❶s<=1000

温馨提示

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

评论

0/150

提交评论