SetRecursion

设置表达式中递归和循环的最大迭代次数。

格式 

SetRecursion(表达式;最大迭代次数)

参数 

表达式 - 任何计算表达式、字段或常数。

最大迭代次数 - 最大迭代次数。

返回的数据类型 

文本、数值、日期、时间、时间戳、容器

原始版本 

18.0

说明 

While 函数和递归自定义函数的默认限制均为 50,000 次迭代。此函数允许您增大或减小最大迭代次数限制。如果超过最大迭代次数,此函数将返回"?";否则返回表达式结果。

注释 

  • 使用非尾递归的自定义函数也应遵守 SetRecursion 指定的最大迭代次数。但如果内存中的可用堆栈空间变得太小,则无论 SetRecursion 如何,其都将终止并返回"?"。

示例 1 

如果 While 循环尝试迭代超过 SetRecursion 指定的五倍限制,则返回"?"。

复制
SetRecursion ( 
    While (  
        [ i = 0 ; out = "" ] ;
        i ≤ 10 ;  
        [ 
            i = i + 1 ; 
            out = out & $变量[ i ] & ¶ 
        ] ;
        out 
    ) ; 
5 )

示例 2 

如果 SetRecursion 将迭代次数限制增大到 200000,则返回“100000”。

复制
SetRecursion ( 
    While (  
        i = 0 ; 
        i < 100000 ; 
        i = i + 1 ; 
        i 
    ) ; 
200000 )