VB for循环为什么只进行1次?
fori=ntonstep1n=n+1if...thenexitforendifnexti这个问题是不是用While最好?...
for i=n to n step 1
n=n+1
if... then
exit for
end if
next i
这个问题是不是用While最好? 展开
n=n+1
if... then
exit for
end if
next i
这个问题是不是用While最好? 展开
3个回答
展开全部
你的理解是错误的:
对于For循环来说,当计算机运行到For i = n to n step 1的时候,这个循环的区间就已经确定了。
比如:
n = 5
For i = n to n step 1
那么,这个For循环的循环区间就是[5~5],循环区间一旦确定,将不再发生变化。
也就是说:
n = n + 1
虽然这里的n=6,你认为For i = n to n就变成了 For i = 6 to 6了,实际上不是,无论你的n怎样发生变化,循环区间已经与n这个变量无关了,所以你的循环区间还是[5~5],不会变成[6~6]。
所以,你的循环只运行了一次。
对于一个For循环来说,循环区间一旦确定,不再变化,唯一能够影响循环运行的,就是循环变量的值。
所以,你将你的代码改成这样,就可以不断运行了:
Sub ddarf()
For i = n To n Step 1
n = n + 1
i = i - 1 '这个时候,循环就可以无限运行了。因为Step =1,而i 每循环一次将自动减1
If n = 10 Then
Exit For
End If
MsgBox "n=" & n & ",i=" & i '这里弹出一个窗口,用来查看n的变化。
Stop '这里加入一个Stop用作断点测试,防止死循环
Next i
End Sub
当然,这种情况下,肯定是用Do ... Loop语句比较方便!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询