WHILE 语句对条件表达式求值,如果结果为 TRUE,则执行一系列语句。
只要 condition 为 TRUE,WHILE 语句就重复 DO 中指定的步骤。您有责任确保程序的逻辑提供终止循环的方法。如果 condition 的求值结果为 UNKNOWN,循环将立即终止。
如果 Label 存在,它将为语句提供一个名称。这对 WHILE 语句自身的执行没有影响,但允许语句包含 ITERATE 和 LEAVE 语句或其他有标号语句(它依次包含 ITERATE 和 LEAVE)。只有存在第一个 Label,第二个 Label 才能存在,如果两个标号都存在,它们必须相同。同一级别的两个或更多有标号语句可以具有相同的 Label,但这会在一定程度上抵消使用第二个 Label 带来的好处。使用第二个标号的好处是可以明白、准确地将每个 END 与它的 WHILE 进行匹配。但是,语句中的有标号语句如果具有相同的标号将会出错,因为这样会使 ITERATE 和 LEAVE 语句的行为不明确。
DECLARE i INTEGER; SET i = 1; X : WHILE i <= 3 DO ... SET i = i + 1; END WHILE X;