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 语句与 EXIT 或 EXIT 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 语句的“循环永远”语法相结合。