地狱少女阎魔爱彼岸花:哦!小小菜鸟求助一道VB程序题。

来源:百度文库 编辑:高考问答 时间:2024/04/28 02:02:44
程序如下:

Private Sub Form_Click()
Dim p As Integer, i As Integer, n As Integer
p = 2: n = 20
For i = 1 To n Step p
p = p + 2
n = n - 3
i = i + 1
If p >= 10 Then Exit For
Next i
Print i, p, n
End Sub

其实p和n我都明白如何计算,但i最后的值是11,我计算不不出来,请高人指点!
Gamepower的解释前面第一部我很明白啊,第2部步长是4我也知道,那么按此类推的话,是不是第3部的步长是第2部算出的p=6呢?那第三步的i怎么会是7呢?不该取6吗?

很简单的题啊。。。

循环第一部的时候
i=1
i=i+1(2) n=n-3(17) p=p+2(4)

注意这里p=4了 由于i接着要根据步长p来取下一个值,所以next的时候 i=4了

所以第2部的结果是
i=i+1(5) n=n-3(14) p=p+2(6)

如此类推:

结果分别为
i p n
2 4 17
5 6 14
8 8 11
11 10 8

你把Print i, p, n这行移一下位置,就能知道i的运算过程:
Private Sub Form_Click()
Dim p As Integer, i As Integer, n As Integer
p = 2: n = 20
For i = 1 To n Step p
p = p + 2
n = n - 3
i = i + 1
Print i, p, n
If p >= 10 Then Exit For
Next i
End Sub