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

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
是怎么得来到的
...全文
10 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
以后小心!
谢先!
回复
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作比较。
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7490

社区成员

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