保留

LEAVE 使一个或多个重复 DO 循环 (即,简单 DO 以外的任何 DO 构造) 立即退出。

读取语法图跳过可视语法图 LEAVE 名称 ;

结束对指令组的处理,并将控制传递到 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" */
注:
  1. 如果指定了 name ,那么在所有方面 (大小写除外) 都必须与在 DO 子句中命名控制变量的符号匹配。 进行比较时不会对复合变量进行替换。
  2. 如果当前正在处理循环,那么该循环处于活动状态。 如果在循环执行期间调用了子例程 (或处理了解释指令) ,那么循环将变为不活动状态,直到子例程返回或解释指令完成为止。 LEAVE 不能用于结束不活动循环。
  3. 如果多个活动循环使用相同的控制变量,那么 LEAVE 选择最内部循环。