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