Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 经典ASP做的时候,提前移动到下一个循环_Loops_Vbscript_Asp Classic - Fatal编程技术网

Loops 经典ASP做的时候,提前移动到下一个循环

Loops 经典ASP做的时候,提前移动到下一个循环,loops,vbscript,asp-classic,Loops,Vbscript,Asp Classic,我想知道是否有任何方法可以在do-until循环中比普通循环终点更早地重新开始 尝试解释我想要什么的非工作示例: do until RS.eof ... amount = RS("product_amount") response.write(amount) if amount > 5 then rs.movenext loop end if ... rs.movenext loop 代表更多的代码 是的,我知道我可以在底部代码周围加一个if标记来跳到循环的末尾,

我想知道是否有任何方法可以在do-until循环中比普通循环终点更早地重新开始

尝试解释我想要什么的非工作示例:

do until RS.eof
  ...
amount = RS("product_amount")
response.write(amount)
if amount > 5 then
    rs.movenext
    loop
end if
  ...
rs.movenext
loop
代表更多的代码


是的,我知道我可以在底部代码周围加一个if标记来跳到循环的末尾,但我想尽量保持它的干净,不需要很多嵌套的if语句。

只要颠倒你的条件就行了。在IF-END-IF代码中执行您的操作,并在IF条件为false后继续

do until RS.eof
      ...
    amount = RS("product_amount")
    response.write(amount)
    if not (amount > 5) then
        ...
    end if

    rs.movenext
loop

不可以。您唯一可以使用的是
Exit Do
,它将完全退出
Do
。你必须依靠
if…then
s来像你现在做的那样将事情分开。

你不能在VBScript中使用
Goto
,这是无效的语法。如果第二种选择在ASP Classic中实际起作用,那就太好了。第一种选择是我想要避免的,使用长if语句。特别是如果我想在“底部…代码”中的多个点上重新启动循环。我知道你可以使用if语句来屏蔽代码,我只是想知道是否有可能重新启动循环。如果你的if语句太长,可能是时候加入一个子语句或函数了?这是一个数据库信息收集循环,我希望能够重新启动并在不同点转到下一条记录。问题是,是否有可能提前重新启动循环,或者如果在ASP classic中,if语句有点纠结是唯一的方法。在我的例子中,函数并不能使循环更好地被浏览。不幸的是,我不能发布实际的代码,这就是为什么我把这个问题变成了一个假设的场景。谢谢你的澄清。被接受为答案,因为它回答了我关于提前进入下一个循环的可能性或缺乏可能性的问题。