一个VB小程序不理解,向行家求教!

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:29:09
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer, p(3) As Integer
k = 5
For i = 1 To 10
a(i) = i
Next i
For i = 1 To 3
p(i) = a(i * i)
Next i
For i = 1 To 3
k = k + p(i) * 2
Next i
Print k
End Sub
问题一:这里有三个for i ,用的是同一个字符"i",这三个i,有什么关联吗?
问题二:第一个循环结束,应该是a(i)= 1, 2, 3 ,4 ,5 ,6 ,7 ,8 ,9 ,10.这十个数组成的数组,是吗?第二个循环结束,p(i)=1,4,9.这三个数组成的数组,对吗?
问题三:第三个for循环中,k = k + p(i) * 2,这里p(i)取什么值?是取1取4还是取9?,还是取1+4+9?
问题四:p(i)*2是第三个for循环中的步长吗?这个步长是一个定数,还是一个变数?即第一步,第二步和第三步是等长还是不等长?
问题五:第三个for 循环中,当i=1时,k=k+p(i)*2=5+1*2=7,还是等于5+9*2=23呢?
问题六:print k ,k=?
初学vb,断断续续,问题很多,烦望各位老师指点.
程序运行的结果是33,但我不太理解,还望解释!

问题一:这里有三个for i ,用的是同一个字符"i",这三个i,有什么关联吗?
答 : 没有关联

问题二:第一个循环结束,应该是a(i)= 1, 2, 3 ,4 ,5 ,6 ,7 ,8 ,9 ,10.这十个数组成的数组,是吗?第二个循环结束,p(i)=1,4,9.这三个数组成的数组,对吗?
答:对的

问题三:第三个for循环中,k = k + p(i) * 2,这里p(i)取什么值?是取1取4还是取9?,还是取1+4+9?
答:看i的数值,i=1 则p(1)=1,i=2 则p(2)=4 ,p(3)=9

问题四:p(i)*2是第三个for循环中的步长吗?这个步长是一个定数,还是一个变数?即第一步,第二步和第三步是等长还是不等长?
答:步长一般的固定的,但也可以变化。但不是你理解的这样,是在for语句里确定的,for i=1 to 3 step 1
step 后面的数值就是步长,省略,步长是1,所以上面的三个步长都是1

问题五:第三个for 循环中,当i=1时,k=k+p(i)*2=5+1*2=7,还是等于5+9*2=23呢?
答:i=1,k=5+1*2=7
i=2,k=7+4*2=15
i=3, k=15+9*2=33

问题六:print k ,k=?
答: k=33

Dim a(10) As Integer, p(3) As Integer '定义两组数组 a有10个数 p有3个
k = 5 '设定 k = 5

For i = 1 To 10 '设定巡回10次
a(i) = i ' a(1)=1 , a(2)=2, a(3)=3 ... a(10)=10
Next i

For i = 1 To 3 '这时的i是另一个变数了, 因为i是过程变数
p(i) = a(i * i) 'p(1)=1, p(2)=4, p(3)=9
Next i

Fo