VB 简单问题我不懂

来源:百度知道 编辑:UC知道 时间:2024/05/09 00:09:14
Dim m(5)
For K = 1 To 5
m(K) = K * K
Next K
Print m(K - 1)
为什么结果就25,而不是16呢.大大家解释下 谢谢

for 循环由1 开始到5

k=1
m(0)=0
m(1)=k*k=1*1=1
m(2)=0
m(3)=0
m(4)=0
m(5)=0

k=2
m(0)=0
m(1)=1
m(2)=k*k=2*2=4
m(3)=0
m(4)=0
m(5)=0

k=3
m(0)=0
m(1)=1
m(2)=4
m(3)=k*k=9
m(4)=0
m(5)=0

k=4
m(0)=0
m(1)=1
m(2)=0
m(3)=0
m(4)=k*k=4*4=16
m(5)=0

k=5
m(0)=0
m(1)=1
m(2)=4
m(3)=9
m(4)=16
m(5)=k*k=5*5=25

k继续加当k>5的时候就停止
所哟for循环完的时候k的值是6不是5
所以就是25不是16

Dim m(5)
For K = 1 To 5
m(K) = K * K
Next K
Print m(K - 1),k

这样运行一下你就明白

我上次回答有误
adai011 正解

VB 中 For 循环

For 循环结束时循环变量的值是 终值 + 1

For K = 1 To 5
m(K) = K * K
Next K
'这时 K 是 6

Print m(K - 1) 就是 显示 m(5)
所以结果是 25

哈哈,错,跳出循环后,K值已经是6而不是5,因为当为5时还要执行一次循环。所以最后M(K-1)结果应该是打印M(6-1)即M(5)了

他们说的对啊