回 帖 发 新 帖 刷新版面

主题:关于for/next循环语句中,循环变量,初值,终值,步长值是变量的问题

for/next循环语句中,循环变量,初值,终值,步长值在循环过程不断发生变化,有的问题把握不住,为了解决类似的问题,编几个简单的程序如下:
cls
x=5
for i=1 to x
    x=x+1
    print x;
next i
end
程序运行的结果是:6 7 8 9 10

cls
x=5
for x=1 to x
    x=x+1
    print x;
next x
end 
程序运行结果是2 4 6

    分析一:以上程序中终值都是个变量,如果真正认为终值为一个变化的量,会出现循环体中的x是始终变化,造成终值x也始终变化,我认为这样的循环变量始终不能超过终值,循环不断进行下去,不断输出。
    分析二:而通过结果却并不是这样的,第一题:x=5后,for i=1 to 5好像以后循环,此句终值始终为5了。第二题:x=5后for x=1 to 5好像以后循环,终值也始终为5。
    想知道这样的问题,是简单分析呢,还是复杂了分析,哪一个才是正确的思路??

回复列表 (共3个回复)

沙发

[url=http://www.programfan.com/club/post-88703.html]浅议for...next的用法[/url]

初值 ,终值 ,步长 的值是在第一次执行到 for 的时候就计算好了,
    你在之后改变这三个值对 for 的执行范围不会有改变.
    也就是 for 已经把这三个值复制到自己的口袋里去了.
    你不能改变别人口袋里的数值.

板凳


for x=1 to x
    循环体
next x

这样的循环,x没有赋值,for/next中终值是0呢,还是1呢?
按你上面说的,循环变量,初值,终值应先装入口袋,那个终值应该是0了(因为最初没赋值值时,x=0),循环语句变成了
for x=1 to 0
   循环体
next x
故循体不执行,是这样解释吧,我运行结果也对,看来应该先装进口袋后,就不变了这种思想是对的吧.

3 楼

是的,
每次执行到for时(不管是第一次还是最后一次还是中间某次)
for都要判断一下循环变量是否超出终值才继续循环的.

我来回复

您尚未登录,请登录后再回复。点此登录或注册