问一个vbscript 循环的有关问题,多谢
问一个vbscript 循环的问题,谢谢
为什么如下代码的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 >
------解决方案--------------------
这说明循环的终值在循环中无法改变,哪怕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 i
End Sub
------解决方案--------------------
初始值也一样的
------解决方案--------------------
for 语句在循环开始前已经将值保存到零时变量中,不会再取 j 的值了。你的要求可用 while 语句实现。
------解决方案--------------------
for i = 1 to 10
j=5
for i = 2 to 5
j=5
你是这样想的 ,但是系统在编译时已经把CX=10了 在循环中无法修改 CX它是被保护的(要不可以被溢出
那样就是危险代码了),这是自我保护的一种方式
------解决方案--------------------
初始值被固定在堆栈中的,不能改变。
------解决方案--------------------
应该不是溢出的问题,而是性能优化,应为循环的终值可能是一个表达式,仅在循环前计算一次优于重复计算。
结束条件不变的用 for,结束条件可变的用 while,这样性能和适用性都照顾到了。
为什么如下代码的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 >
------解决方案--------------------
这说明循环的终值在循环中无法改变,哪怕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 i
End Sub
------解决方案--------------------
初始值也一样的
------解决方案--------------------
for 语句在循环开始前已经将值保存到零时变量中,不会再取 j 的值了。你的要求可用 while 语句实现。
------解决方案--------------------
for i = 1 to 10
j=5
for i = 2 to 5
j=5
你是这样想的 ,但是系统在编译时已经把CX=10了 在循环中无法修改 CX它是被保护的(要不可以被溢出
那样就是危险代码了),这是自我保护的一种方式
------解决方案--------------------
初始值被固定在堆栈中的,不能改变。
------解决方案--------------------
应该不是溢出的问题,而是性能优化,应为循环的终值可能是一个表达式,仅在循环前计算一次优于重复计算。
结束条件不变的用 for,结束条件可变的用 while,这样性能和适用性都照顾到了。