Labeled WHILE 循环

要创建 Labeled WHILE 循环,您可以在初始的 WHILE 关键字之前声明循环标签,并在 END WHILE 关键字之后重复此标签,如以下两个 WHILE 循环的示例:
CREATE PROCEDURE ex_cont_ex()
          DEFINE i,s,j, INT;
          <<while_jlab>>
          WHILE j < 20
          IF j > 10 THEN 
          CONTINUE WHILE;
          END IF
          LET i,s = j,0;
          <<while_slab>>
          WHILE i > 0
          LET i = i -1;
          IF i = 5 THEN
          EXIT while_jlab;
          END IF
          END WHILE while_slab
          END WHILE while_jlab
          END PROCEDURE;

此处的 EXIT while_jlab 语句与 EXITEXIT FOR 关键字具有相同的效果,终止外部 WHILE 循环和例程。在这个例子中,包括 EXIT while_jlab 语句的语句具有与 EXIT while_jlab WHEN i = 5 相同的效果。

您还可以标记以紧跟在初始 WHILE 关键字和条件之前的循环 <<label>> 规范开头的 LOOP 语句。在这种类型的循环中,CONTINUE LOOP 、EXIT LOOP 和 END LOOP 关键字将替换 CONTINUE WHILE 、EXIT WHILE 和 END WHILE 关键字。LOOP 和 WHILE 关键字在 CONTINUE 和 EXIT 关键字之后都是可选的,但是在包含 LOOP 关键字的 SPL 循环语句中需要 END LOOP 关键字。

您可以使用类似的语法创建一个未标记的循环,省略紧跟在 WHILE 条件规范之前的 <<label>>声明。在这种情况下,还必须省略 END LOOP 关键字后面的未定义循环标签标识符。有关这些形式的标记和未标记的循环语句的描述和示例,请参阅 LOOP 语句,这些语句使您能够将 WHILE 语句语法及其基于条件的循环迭代数与 LOOP 语句的“循环永远”语法相结合。

相关语句

<< Label >> 语句CONTINUEEXITLOOP