请教高手解决关于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,不会把!
改如何解决!!!!!!!!!!!!!!!!!!!!!



...全文
32 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2002-05-19
  • 打赏
  • 举报
回复
楼上所说的都没有错,如果还是6的话,它还在循环体里,还应接着循环!
charleswu 2002-05-19
  • 打赏
  • 举报
回复
同意楼上大家的意见,我没说的哈!
footballboy 2002-05-19
  • 打赏
  • 举报
回复
你结束循环才显示,当然显示6之后的下一个数7啦
「已注销」 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了,结束之行

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧