CONTINUE

CONTINUE ステートメントは、間にあるステートメントをスキップしながら、ループの次の反復に進む方法を提供します。

CONTINUE ステートメントが見つかると、最も内側のループの次の反復が開始され、 CONTINUE ステートメントに続くすべてのステートメントがループの終わりまでスキップされます。つまり、制御はループ制御式(存在する場合)に戻され、ループの本体が再評価されます。

WHEN 句が使用される場合、 WHEN 句で指定された式が TRUE に評価される場合にのみ、ループの次の反復が開始されます。それ以外の場合、制御は CONTINUE ステートメントに続く次のステートメントに渡されます。

CONTINUE ステートメントはループ外では使用できません。

以下は、 CONTINUE ステートメントを使用して奇数の表示をスキップする前の例のバリエーションです。

DECLARE
    v_counter       NUMBER(2);
BEGIN
    v_counter := 0;
    LOOP
        v_counter := v_counter + 1;
        EXIT WHEN v_counter > 10;
        CONTINUE WHEN MOD(v_counter,2) = 1;
        DBMS_OUTPUT.PUT_LINE('Iteration # ' || v_counter);
    END LOOP;
END;

以下は、上記のプログラムからの出力です。

Iteration # 2
Iteration # 4
Iteration # 6
Iteration # 8
Iteration # 10