为什么如下代码的j=5没有生效 
我希望在for循环里赋值给j=5时候,循环就结束了 
可是我发现还是打印了10个SF, 
<html > 
<body >  
<script type="text/vbscript" > 
j=10 
for i = 1 to j 
j=5 
document.write("SF,") 
next 
</script >  
</body >  
</html > 

解决方案 »

  1.   

    在没有退出for时程序还是会执行最初的条件即j=10,虽然你后面重置了J的值,最后是另外取个变量N,N=N+1, if N=5 then exit for这样应该可以
      

  2.   

    这说明循环的终值在循环中无法改变,哪怕j重新赋值了。VB中也是如此。至于如何退出循环,估计不用多说了。
    Private Sub Command1_Click()
    Dim i As Integer, n As Integer
    n = 8
    For i = 1 To n
    Debug.Print i, n
    n = 3
    Next iEnd Sub
      

  3.   

    谢谢两位
    VB和VBSCRIPT规定for循环的终值在循环里是不能改变的是吧?
      

  4.   

    for 语句在循环开始前已经将值保存到零时变量中,不会再取 j 的值了。你的要求可用 while 语句实现。
      

  5.   

    for i = 1 to 10
    j=5  
    for i = 2 to 5
    j=5  你是这样想的  ,但是系统在编译时已经把CX=10了 在循环中无法修改 CX它是被保护的(要不可以被溢出
    那样就是危险代码了),这是自我保护的一种方式
      

  6.   

    应该不是溢出的问题,而是性能优化,应为循环的终值可能是一个表达式,仅在循环前计算一次优于重复计算。
    结束条件不变的用 for,结束条件可变的用 while,这样性能和适用性都照顾到了。