请教高手解决关于vb中一个的奇怪问题?希望高手进来看看究竟怎么是怎么回事?

ZHANGWEI15 2002-05-19 04:58:58
我在调试一个程序中屡屡出错,反复研究发现了vb的一个奇怪现象:你可以试一下。

Private Sub Command1_Click()
 For i = 1 To 6
   Debug.Print i
 Next
MsgBox i

结果本来其实很简单就是打印1,2,3,4,5,6
但是msgbox出现的确实“7”!设置断点以后,将鼠标移到i上也是显示“7”!!你可以试试看也是出现这个问题。
我想知道为设么会出现i+1的情况
难到是bug吗,微软会出现这种bug,不会把!
改如何解决!!!!!!!!!!!!!!!!!!!!!



...全文
10 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gxingmin 2002-05-19
楼上所说的都没有错,如果还是6的话,它还在循环体里,还应接着循环!
回复
charleswu 2002-05-19
同意楼上大家的意见,我没说的哈!
回复
footballboy 2002-05-19
你结束循环才显示,当然显示6之后的下一个数7啦
回复
kunlunlang 2002-05-19
TMD 又来晚了
回复
ZLMzlm 2002-05-19
主要是 NEXT 控制 FOR 循环 STEP
默认值为 1
NEXT 后 I=I+(STEP)
当 I=6 后 经 NEXT ,I=7
跳出循环后 I=7
MSGBOX I=7
OVER
回复
xxlroad 2002-05-19
好象就是这样的
Next i 'i加1 (step 为 1 或 不写)
MsgBox i
回复
lovingkiss 2002-05-19
主要就是因为那个Next影响的呀
回复
jdsbjcailei 2002-05-19
呵呵,我不是高手!不过这不是bug呀!
你这样在看!
For i = 1 To 6
Debug.Print i
MsgBox i
Next
如何?
----------------------------
for
.....
next '这里只有执行完这个循环内的东西,才到下面的语句msgbox

msgbox i '这里的i只接受上面循环后的最后的值
------------------------------

回复
roberthanker 2002-05-19
每次NEXT,i都会加上step中的数,缺省为1。
当最后一次循环i=6时,运行到NEXT,I=I+1,此时I=7,检查I<=6,当然循环条件不成立,退出循环。
执行到MSGBOX时,I已经为7了。(正因为是7才退出循环)
回复
dyugao 2002-05-19
MSGBOX 出来的就是7吗
 For i = 1 To 5
   Debug.Print i
 Next
MsgBox i

MsgBox结果就是6了
回复
dyugao 2002-05-19
在最后一次I+1后,程序发现I>6了,结束之行
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7521

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2002-05-19 04:58
社区公告
暂无公告