While
条件为真时,重复逻辑并返回结果。
While([初始变量];条件;[逻辑];结果)
参数
初始变量
- 可用于下列参数的
变量
定义。
条件
- 每次循环迭代前解析的
布尔值
表达式
。如果为真 (True),则循环重复。如果为假 (False),则循环停止。
逻辑
- 每次循环重复时解析的变量定义。
结果
- 循环停止时返回的表达式。
返回的数据类型
文本、数值、日期、时间、时间戳、容器
源于
FileMaker Pro 18.0 Advanced
说明
While 函数执行下列步骤:
1.
解析
初始变量
参数。
2.
解析
条件
参数。
3.
如果
条件
为:
•
真(任意非零数字结果),解析
逻辑
,然后重复步骤 2。
•
假 (0),停止循环并返回"
结果
"。
您可以用方括号 [ ] 将
初始变量
和
逻辑
括起来并用分号进行分隔,来指定多个变量定义。例如:
While (
[初始变量1 = 值1 ; 初始变量2 = 值2 ; ...];
条件 ;
[逻辑变量1 = 表达式1 ; 逻辑变量2 = 表达式2 ; ...];
结果
)
初始变量
和
逻辑
参数中指定的变量从左向右解析。这些变量处在同一范围内,可用于
条件
和
结果
参数。请参阅
使用变量
。
必须初始化需要将信息从一个循环迭代保留到下一个的变量,然后用在
逻辑
参数中。否则,将删除这些值。
注释
•
为防止导致 FileMaker 客户端停止响应的无限循环,如果循环迭代次数超过限制,此函数将返回"?"。要设置限制,请使用
SetRecursion 函数
。
示例 1
总计重复变量的值
$a
。每个循环迭代递增
计数
,用它来指定
$a
变量重复,并将值添加到运行
总计
。本例返回"
150
"。
While (
[
计数 = 0 ;
总计 = 0 ;
$a[1] = 25 ;
$a[2] = 50 ;
$a[3] = 75
] ;
计数 < 3 ;
[
计数 = 计数 + 1 ;
总计 = 总计 + $a[计数]
] ;
总计
)
示例 2
在两个文本值之间增加 5 个句点。While 函数中的
城市
函数变量
不同于 Let 函数,所以本例返回"
旧金山.....巴黎
"。
Let (
城市 = "巴黎";
While (
[城市 = "旧金山"; i = 0] ;
i < 5 ;
[
i = i + 1 ;
城市 = 城市 & "."
] ;
城市
)
& 城市)
如果每个函数变量
城市
被
局部变量
$城市
所替代,则本例返回
旧金山.....旧金山.....
,因为
$城市
在整个计算中具有同一范围。
示例 3
说明在 While 循环之前定义函数变量的范围与在 While 循环的
初始变量
和
逻辑
参数中定义它们时的差异。
在 While 循环之前定义的
it1
和
it2
的值在循环中可用,但是循环中对
it1
和
it2
的更改不会影响循环之后这些变量的值。本例还说明了在每次循环迭代后,
逻辑
参数中定义的
it2
变量的值 2 如何丢失,因为
it2
未在
初始变量
参数中初始化。
Let (
[// While 循环之前;设置结果行 1.0
it1 = "a"; // 在 Let 范围中定义
it2 = 1; // 在 Let 范围中定义
out = "1.0 " & it1 & " " & it2 & ¶
];
While
(
[// 初始变量;设置结果行 2.0 和 3.0
i = 0;
out = out & "2.0 " & it1 & " " & it2 & ¶;
it1 = "b"; // 在 While 范围中定义
out = out & "3.0 " & it1 & " " & it2 & ¶
];
// 条件
i < 2;
[// 逻辑;设置结果行 4.x 和 5.x
// 先前传递时在逻辑参数中定义的变量
// 此时删除循环
i = i + 1;
out = out & "4."& i & " " & it1 & " " & it2 & ¶;
it1 = "c"; // 在 While 范围中重新使用
it2 = 2; // 在 While 范围中重新定义
out = out & "5."& i & " " & it1 & " " & it2 & ¶
];
// 结果;设置结果行 6.0
out & "6.0 " & it1 & " " & it2 & ¶
)
// While 循环之后;设置结果行 7.0
& "7.0 " & it1 & " " & it2 & ¶
)
结果是:
1.0 a 1
2.0 a 1
3.0 b 1
4.1 b 1
5.1 c 2
4.2 c 1
5.2 c 2
6.0 c 2
7.0 a 1
函数参考(类别列表)
函数参考(按字母顺序排序的列表)
关于公式
关于函数
定义计算字段
在公式中使用运算符