关于四级的一道题目,快来看看啊!在线等待

carlchen20032002 2003-05-09 04:03:50
Private Sub Form_Click()
j = 10
For i = 1 To j
i = i + 2
j = j - i
Next i
Print i
Print j
End Sub
编译后输出i=13,j=-20
能不能帮我解释为什么j=-20
是怎么得来到的
...全文
43 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
以后小心!
谢先!
wenejiang 2003-05-09
  • 打赏
  • 举报
回复
这种题目不小心还真会失分。
lihonggen0 2003-05-09
  • 打赏
  • 举报
回复
加断点调试就可以看出来的

F8单步调试
bingxuehuiren 2003-05-09
  • 打赏
  • 举报
回复
这种问题用单步执行法看的比较清楚
8host 2003-05-09
  • 打赏
  • 举报
回复
第一次 i=3 j=7
2 i=6 j=1
3 i=9 j=-8
4 i=12 j=-20
maskzha 2003-05-09
  • 打赏
  • 举报
回复
i=3
j=7
i=6
j=1
i=9
j=-8
i=12
j=-20

Final:
i=13j=-20
程序只循环了三次
victorycyz 2003-05-09
  • 打赏
  • 举报
回复
我把原代码加上中间的输出:
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
j = 10
For i = 1 To j
i = i + 2
j = j - i
Print i & "," & j
Next i
Print i
Print j
End Sub
得到的结果:

3,7
6,1
9,-8
12,-20
13
-20

这就看得很明白了,
程序第一次运行了 for i=1 to j 时,已经把j编译成10(不是变量)了,以后的每次循环,都是把i与10作比较,而不是与变量j作比较。

7,785

社区成员

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

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