关于asp 编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 18:23:11
If request("k") <> "" Then
'提交的自动处理次数
for i =0 to request("k")-1
for j =0 to 9
Mmax =0
ssqlp = "select * from temp where kind=3"
rp = openrst(ssqlp)
z = rp(myarry(j))
rp.Close()
ssqlp = "select * from temp where kind=1"
rp = openrst(ssqlp)
r = rp(myarry(j))
rp.Close()
If z < r * 0.9 Then
M(j)=(r*0.9-z)/r
Else If z>= r* 1.1 Then
M(j)=(z-r*1.1)/r
Else
M(j)=0
End if

If M(j)>=Mmax then
Mmax=M(j)
p1=j
End if
Next
prun(myarry(p1))
Next

这段语句显示的是“Microsoft VBScript 编译器错误 (0x800A041F)
错误的 'Next'”
问怎样可以解决问题
这段代码主要实现:通过比较kind 1和kind 2,找出比值最大的字段!
可能我表达不清楚,主要问的是语法哪里有错误。。。谢谢解答。。。
是不是for语句里面有代码有语法错误才显示NEXT错误?

这不很明显的嘛.
根本就不是 FOR出错..而是你的 if分支语句语法出错了!
If z < r * 0.9 Then
M(j)=(r*0.9-z)/r
Else If z>= r* 1.1 Then
M(j)=(z-r*1.1)/r
Else
M(j)=0
End if
这明显少了一个 end if
如果是使用 elseif 连在一起的就可以只用一个 end if
否则有多少个if就得有多少个end if

vbscript里面for循环没办法嵌套,嵌套就出错。
ps:这个是个人编程中的感觉,没有相关的技术文档支持这个说法