#CONTINUE Statement

CONTINUE Statement为顺序控制语句,其语法形式为:

CONTINUE [label_name] [WHEN condition];

其中,label_name为可选项,标识需跳过迭代的当前或外层循环;WHEN condition为可选项,condition为能产生布尔结果的表达式。

CONTINUE语句用于跳过循环的当前迭代,跳转到循环开始处,进行下一次循环的执行。需注意:

  • label_name标识需跳过迭代的当前或外层循环,若label_name对应的标签不标识当前或外层循环,或为不存在等非法情况,将报错处理。label_name可省略,则CONTINUE语句执行时跳过当前循环的当前迭代。

  • WHEN condition子句中的条件结果用于确定是否执行CONTINUE语句,true为执行,false为不执行。当省略WHEN condition子句时,默认执行CONTINUE语句。

示例

DECLARE
i INT;
BEGIN
    i := 0;
    <<loop1>>
    WHILE i < 3 LOOP
        i := i + 1;
        CONTINUE loop1 WHEN i = 2;
        DBMS_OUTPUT.PUT_LINE ('This is: '||i);
    END LOOP loop1;
    DBMS_OUTPUT.PUT_LINE ('The End');
END;
/
 
--result
This is: 1
This is: 3
The End


DECLARE
    a INT;
BEGIN
    a := 1;
    LOOP
        a :=a + 1;
        DBMS_OUTPUT.PUT_LINE('loop1');
        CONTINUE WHEN a < 5;
        DBMS_OUTPUT.PUT_LINE('loop2');
        EXIT;
    END LOOP;
END;
/

--result
loop1
loop1
loop1
loop1
loop2
pdf-btn 下载文档
copy-btn 复制链接