FOREACH
对若干点或若干值中的每一个运行一次块。
语法
FOREACH name IN [first..last] BEGIN … END
FOREACH name IN [point,point,…] BEGIN … END
FOREACH name IN value,value,… BEGIN … END
FOREACH name IN list BEGIN … END
FOREACH name IN dictionary BEGIN … END
| 参数 | 含义 |
|---|---|
| name | 依次取每一项的变量。 |
| [first..last] | 一串连续的点,例如 [P0..P3]:name 依次为每个点的位置。 |
| [point,point,…] | 若干点,例如 [P0,P2]:name 依次为每个点的位置。 |
| value,value,… | 若干表达式,各自在循环开始时计算:数字、位置、字符串。 |
| list | 一个列表,例如 {10,20,40} 或保存列表的变量:name 依次为每一项。 |
| dictionary | 一个字典:name 依次为每个键(dictionary[name] 为其值)。 |
BEGIN 之前可以加 DO。
示例
FOREACH Q IN [P0..P3] BEGIN
R = Q + [20, 0]
CIRCLE R, Q, TRUE
END

在盒子的每个角上画一个半径为 20 的圆,角移动时圆也随之移动。
FOREACH S IN 10, 20, 40 BEGIN
P10 = [L / 2, W / 2]
P11 = P10 + [S, 0]
CIRCLE P11, P10, TRUE
END
围绕盒子中心的三个圆,半径分别为 10、20 和 40。
HOLES={"small":5,"large":12}
FOREACH K IN HOLES BEGIN
P10 = [HOLES[K] * 10, 50]
P11 = P10 + [HOLES[K], 0]
CIRCLE P11, P10, TRUE
END
为字典的每个条目画一个孔,半径为该条目的值。
说明
在图元需要通过名称指定点的地方,可以使用位置:上面的 CIRCLE R, Q, TRUE 是一个以 Q 为圆心、经过 R 的圆。
BREAK 跳出循环;CONTINUE 进入下一项。