首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XQuery是否有用于FLWOR表达式的exit语句

XQuery是否有用于FLWOR表达式的exit语句
EN

Stack Overflow用户
提问于 2010-06-26 23:19:52
回答 3查看 10.5K关注 0票数 6

我想知道xquery FLWOR表达式是否有像continue和break这样的exit语句?

例如,当达到特定条件时,我想退出For循环。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-28 02:17:50

我想知道xquery FLWOR表达式是否有像continue和break这样的

语句?

例如,当达到特定条件时,我想退出For循环。

XQuery是一种函数式语言,这意味着没有严格的执行顺序概念。因此,当某些事情发生时,任何尝试做一些具体的事情,都是没有意义的。

正确的方法是在满足特定条件的情况下执行某些操作。

除了使用函数之外,没有其他方法可以退出FLWOR表达式,但这会终止处理。

人们不应该太担心优化--许多处理器都有很好的优化器。

因此,许多处理器将延迟求值,并在第一次生成满足specific-condition()的结果时停止下面的FLOWR表达式的求值

代码语言:javascript
复制
  (someFlowerExpression )[specific-condition(.)][1]
票数 7
EN

Stack Overflow用户

发布于 2012-05-12 22:16:33

XQuery Scripting有一条exit语句:

代码语言:javascript
复制
variable $i := 0;
while(true())
{
  $i := $i + 1;
  if($i = 3) then
      exit returning $i 
  else();
} 

代码语言:javascript
复制
for $i in (1 to 1000)
return
  if($i = 3) then
    exit returning $i;
  else();

您可以在http://www.zorba-xquery.com/html/demo#JvSLsVh3ZjhvTHecVd9jyE1vEBc=上现场试用此示例

票数 1
EN

Stack Overflow用户

发布于 2013-11-20 15:48:14

虽然这个问题很古老,但我回答这个问题是因为一些新人可能会遇到这样的情况,并会得到更好的解决方案。

该解决方案可以在BaseX 7.6上轻松运行

代码语言:javascript
复制
for $i in (1 to 10)
return
   if ($i = 3) then
       $i
   else 
       exit

输出将为-3

或者这将生成输出- 3,

代码语言:javascript
复制
for $i in (1 to 10)
return
   if ($i = 3) then
       $i
   else 
       ()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3124363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档