トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/CONTINUE の変更点

Top/ABAP/CONTINUE

* 概要 [#yb92f7ff]
ループの処理中に、ループの開始位置に戻し、次のループパス(次のレコード)に遷移させる[[ABAP]]命令。

** 用法 [#dfbbc7dd]
上記の概要、そのまんま。
ループ以外の場所でも利用できるが、混乱を招くので[[IF>ABAP/IF]]文であれば[[EXIT>ABAP/EXIT]]、ループ中ならCONTINUEと使い分けるのがいいだろう。

ただ、注意が必要なのは[[LOOP>ABAP/LOOP]]命令のWHERE句との住み分けで、この命令を使うのは「ループ中の[[内部テーブル>ABAP/内部テーブル]]の項目およびその値だけでは判断できず、加工や計算を加えて判定しなければならない場合」などとした方がいいだろう。

LOOP〜WHEREで判定したりIF〜CONTINUEで判定したりを気分で使い分けていると、背骨のないソースコードになってしまう。
LOOP~WHEREで判定したりIF~CONTINUEで判定したりを気分で使い分けていると、背骨のないソースコードになってしまう。

** サンプル [#be2b1ff3]
# LOOP AT L_IT_SALES_ORDER INTO L_WA_SALES_ORDER.
#   SELECT SINGLE ZZITEM_ELEMENT
#            FROM ZZADDON_TABLE
#           WHERE VBELN = L_WA_SALES_ORDER-VBELN
#             AND MATNR = L_WA_SALES_ORDER-MATNR.
# 
#   IF ( SY-SUBRC <> 0 ).
#     CONTINUE.
#   ENDIF.
# ENDLOOP.
 LOOP AT L_IT_SALES_ORDER INTO L_WA_SALES_ORDER.
   SELECT SINGLE ZZITEM_ELEMENT
            FROM ZZADDON_TABLE
           WHERE VBELN = L_WA_SALES_ORDER-VBELN
             AND MATNR = L_WA_SALES_ORDER-MATNR.
 
   IF ( SY-SUBRC <> 0 ).
     CONTINUE.
   ENDIF.
 ENDLOOP.

* その他 [#o3220837]
関連する命令として、[[CHECK>ABAP/CHECK]]や[[EXIT>ABAP/EXIT]]が挙げられる。


~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)