保留
LEAVE 使一个或多个重复 DO 循环 (即,简单 DO 以外的任何 DO 构造) 立即退出。
结束对指令组的处理,并将控制传递到 END 子句之后的指令,就像迂到了 END 子句并且满足了终止条件一样。 但是,在退出时,控制变量 (如果有) 将包含处理 LEAVE 指令时的值。
name 是一个符号,作为常量。 如果未指定 name ,那么 LEAVE 结束最内部活动的重复循环。 如果指定了 name ,那么它必须是当前活动循环 (可能是最内部的循环) 的控制变量的名称,然后结束该循环 (及其内部的任何活动循环)。 然后,控制传递到与所选循环的 DO 子句匹配的 END 后面的子句。
示例
do i=1 to 5
say i
if i=3 then leave
end
/* Displays the numbers: "1" "2" "3" */
注:
- 如果指定了 name ,那么在所有方面 (大小写除外) 都必须与在 DO 子句中命名控制变量的符号匹配。 进行比较时不会对复合变量进行替换。
- 如果当前正在处理循环,那么该循环处于活动状态。 如果在循环执行期间调用了子例程 (或处理了解释指令) ,那么循环将变为不活动状态,直到子例程返回或解释指令完成为止。 LEAVE 不能用于结束不活动循环。
- 如果多个活动循环使用相同的控制变量,那么 LEAVE 选择最内部循环。
