vbfr循环机制.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vbfr循环机制.doc

剖析VB For循环运行机制 [円期:2010-05-05] 來源: : [字体:大中小] 作为程序设计中最基本结构之一的循环结构,在软件开发中占有 很重要的地位,几乎每一个大中型程序都离不开该结构。假设没有循 环这一结构,无疑,程序设计将会是一件非常痛苦的事情。循环如果 被利用好则可以给我们设计带来很大的方便。相反,如果不会用或运 用不当,不仅不会给我们带来方便,反而会因为绕来绕去把我们弄的 头晕眼花,不知所措。本文将用浅显的文字辅以简单的例子对¥13 fo r循环结构加以阐述,以飨读者。 高中信息技术《算法与程序设计》会考模拟练习中有类似下面这 样的题目: 在VB中,假定有以下程序段: for i=3 to 1 print “VB” next i 问:语句print “VB” 的执行次数为几次,i的值是几? 这样的题目令好多同学摸不着头脑,稀里糊涂,答案等等不一。为什 么会出现这样的问题呢?笔者认为就是因为好多同学对其运行机制 的理解较为片面,过于肤浅,只停留在表面,不够深入、透彻。那末, 答案到底是什么,我们暂且不去回答,因为有现成的公式可以计算出 循环的次数(循环的次数的计算公式为:n-Int ((终值-初值)/步 长)+1)。到这里不免有人会质问:不就是一个循环吗?能有什么内 涵?既然有了公式,根据它不就可以计算出循环次数来吗?还要说那 么多废话,不是多此一举、小题大做吗?不要忘记,我们不是单单为 丫去计算别人设计的循环的次数,而是要理解循环运行机制,以便掌 握各个量的变化情况。况且,该公式的适用范围较小。之所以产生疑 惑的关键之处就是在于没有理解循环的内涵,而只是一味地死记、套 用公式,再者就是该公式有一定的局限性,所以难免会得出错误结果 來。 那么循环到底有哪些内涵呢?首先让我们来看一看VB For循环 的格式(定义): for 循环变量=初始值to终值[step步长] 循环体 [exit for] next [循环变量] 其中,如果省略“[step步长]”,则默认步长为1。[exit for]的 作用是用来强制退出循环,执行循环以后的语句。初始值、终值和步 长既可以是正数,也可以为负数(当然也可以为整数或小数)。在一 些教材中只是简单说只要初始值不超过终值,循环就一直执行。那么 到底什么是“初始值”,什么是“不超过终值”呢?下面我们就结合 几个例子,详细地解释一下,或许能给一度困惑的您带来一种豁然开 朗的感觉。 例1:求10以内偶数和的程序段如下: for i=2 to 10 step 2 sum=sum+2 next i 很显然,循环的次数为5。运行过程中各个量的变化情况如下表: 第几次 1 2 3 4 5 i的初值 2 4 6 8 10 本次结束之后 Sum 2 6 12 20 30 sum和i的值 i 4 6 8 10 12 好多同学对上表的前三行的值都能理解,感到疑惑不解的是最后一行。 为什么每次循环结束之后I的值会变化呢?这是因为“next i” 在起作用。当执行完sum=sum + I这个循环体之后,接下来就是执行 next i。而next i的作用就是让当前i的值增加一个步长, 并将增加后的i作为下一次循环的初始值。所以初始值不是仅指刚开 始吋赋的值,应该理解为“每次进入循环之前的值”。再者就是认为 第5次I的值是12 了,不是超过终值10 了吗?怎么还可以呢?现在 就来解释一下什么是“不超过终值”。本例中的终值是10,步长(2) 是正的,只要循环变量的初始值不在区间(10, +oo)(注意是开区 问,我们称之为“终值的正向区问”,因为步长是正的,反之则为“终 值的负向区间”),循环就还要继续执行。该区域暂且称之为禁区。 禁区取决于步长的正负。步长是正的就取终值的正向区间,否则就取 终值的负向区间。 再來看下一个VB程序段: for y=l to 10 step 一 1 x=x+l 问:循环体执行的次数和循环结束后循环变量的值分别是多少? 首先知道终值是10,步长是负的,所以得到禁区为(--,10),第 -次循环变量的初始值为1,在禁区内,所以第一次就不执行。故循 环次数为0。这里因为先执行了“ for y=l to 10 step -1”该条 件语句,是让循环变量的初始值为1,然后再去判断循环变量的值是 否在禁区。所以,虽然循环没有执行,但是条件还是要被执行的。条 件是循环体是否执行的依据,而条件执行的结果就是y=l。因此,循 环(虽然没有执行)结束后循环变量的值是1。 根据以上分析,不难回答本文开始提出的问题: for i=3 to 1 print “VB” next i 这里的终值是1,步长(默认为1)是正的,所以得到禁区为(1,+ -),而初值3在此区间,所以循环体不执行,但循环变景i的值

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档