Option ExplicitPrivate Sub Command1_Click()
Dim i, j
j = 5
For i = 1 To j Step 2
  
  i = i + 1
  j = j - i
  
Next i
Print i, j
End Sub运行原理,结果为什么为:13  -16

解决方案 »

  1.   


    单步调试,在监视窗口观察i、J值的变化就明白了。注意fori=1 to j中j的判断。
      

  2.   

    For语句规则:    j = 10
        For i = 1 To j  '这里j只取第一次入口的数值
            Debug.Print i, j
            j = 2
        Next    实际循环了10次,而不是2次!
      

  3.   

    j是不是应该为静态呢?
    to Chice_wxg 
    '*************
    if 想要执行2次
      

  4.   

    7,-2
    象 Chice_wxg说的一样! 静态也不行.
      

  5.   

    我这里结果也是 7  -2 ,呵呵,VB6环境
    TO mxfeng(早晚得是无业游民!)   如果范围要变,干脆别用For了,用While之类吧!
       否则越弄越麻烦~~~~~~
      

  6.   

    两次:
     1:  i=i+1+2,    j=j-2
     2:  i=i+1+2,    j=j-5
    7,-2 !!
    13  -16耍我们?
      

  7.   

    在ASP中调试:dim i,j
    j=10
    for i=1 to j step 2
        i=i+1
        j=j-i
     response.write "i=" & i & "……" & "j="& j & "<p>"
    next
      
     response.write "输出:I=" & i & "……" & "J="& j & "<p>"输出结果:
    i=2……j=8i=5……j=3i=8……j=-5i=11……j=-16输出:I=13……J=-16
    能看出问题为什么了吧?执行次数取决于 i 啊!
      

  8.   

    其中i=1 to j step 2处的j始终为10,各位!
      

  9.   

    TO cairuibin() 最终得到  I=13   J=-16   是因为开始你设置 的 J=10 而你的楼主帖子里 J = 5  , 这时候结果是 7   -2
      

  10.   

    TO cairuibin() 最终得到  I=13   J=-16   是因为开始你设置 的 J=10 而你的楼主帖子里 J = 5  , 这时候结果是 7   -2