新微赢技术网

标题: ASP新手问题---循环问题 [打印本页]

作者: jane    时间: 2010-1-9 05:38
标题: ASP新手问题---循环问题
dim a(6)
for i=0 to 6
a(i)=i+1
next
for i=0 to 6
count=count+a(i)+1
next
response.write count
------------------------------------
请问下这段代码的结果为什么是35的呢?我想问下的是,
count  好像没有定义也没有付值,怎么与a(i)+1相加的呢?初学者真的不太明白,很不好意思麻烦大家抽点时间解释一下,真的感谢!谢谢能把代码详细解释下 谢谢!
作者: 凤蔷¤蹁跹    时间: 2010-1-9 05:38
在asp里,规则上是需要定义的,但不定义也不会出错
count 在这里属于自定义 也就是说 可以是 abc 或者 efg 任何的自己定义的字母
比如你可以写成
dim a(6)
for i=0 to 6
a(i)=i+1
next
for i=0 to 6
abc=abc+a(i)+1
next
response.write abc
这样同样也是可以的

for i=0 to 6
a(i)=i+1
next
这个的循环出来看就是这样的 1 2 3 4 5 6 7

for i=0 to 6
abc=abc+a(i)+1
next
这个循环出来看就是这样的 2 3 4 5 6 7 8

可以看出,35的数字是后面的循环数字相加的总和 2+3+4+5+6+7+8=35
那这个循环数字又是如何得出的呢,就是上一个循环数字得来的
我们来看看上面每一个循环都付值给变量 a(i) 一共有7个付值循环变量
直观的看就是这样的形式
0-6之间数字循环,一共循环7次
a(i)=0+1 '相当于a(i)=1
a(i)=1+1 '相当于a(i)=2
a(i)=2+1 '相当于a(i)=3
a(i)=3+1 '相当于a(i)=4
a(i)=4+1 '相当于a(i)=5
a(i)=5+1 '相当于a(i)=6
a(i)=6+1 '相当于a(i)=7

而下面的循环
for i=0 to 6
abc=abc+a(i)+1
next
里的abc=abc+a(i)+1中的a(i)就是以上循环付值的变量,在这里的循环我们直观的看出是这样的
将上面的1-7之间的数字进行0-6之间的循环,一共循环7次
abc=abc+a(i)+1
abc=1+1 (因为abc+a(i)+1中的abc没有值,那就等于是1+1)
abc=abc+2+1 (abc=2+2+1 这里的abc=5)
abc=abc+3+1 (abc=5+3+1 这里的abc=9)
abc=abc+4+1 (abc=9+4+1 这里的abc=14)
abc=abc+5+1 (abc=14+5+1 这里的abc=20)
abc=abc+6+1 (abc=20+6+1 这里的abc=27)
abc=abc+7+1 (abc=27+7+1 这里的abc=35)
最终结果,最后的abc=35,这样就是一路垒加下来的
这个执行过程就是这样执行的
作者: 可爱的人    时间: 2010-1-9 05:38
谢谢! 真的很谢谢!版主真好!
作者: 西门庆    时间: 2010-1-9 05:38
版主分析得很详细了




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2