ABAP/CONTINUE のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- ABAP/CONTINUE へ行く。
- 1 (2014-06-26 (木) 11:02:35)
概要 †
ループの処理中に、ループの開始位置に戻し、次のループパス(次のレコード)に遷移させるABAP命令。
用法 †
上記の概要、そのまんま。 ループ以外の場所でも利用できるが、混乱を招くのでIF文であればEXIT、ループ中ならCONTINUEと使い分けるのがいいだろう。
ただ、注意が必要なのはLOOP命令のWHERE句との住み分けで、この命令を使うのは「ループ中の内部テーブルの項目およびその値だけでは判断できず、加工や計算を加えて判定しなければならない場合」などとした方がいいだろう。
LOOP〜WHEREで判定したりIF〜CONTINUEで判定したりを気分で使い分けていると、背骨のないソースコードになってしまう。
サンプル †
# 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.
その他 †
コメントはありません。 Comments/ABAP/CONTINUE