ABAPのCHECK命令について整理します。
CHECK命令は、一般的にはある条件を満たさない場合にループ処理を抜ける命令です。
ループの外でCHECK命令を行った場合には、現在の処理ブロックを終了します。
(例えば、サブルーチンであれば、そのサブルーチンの処理を終了し、次のブロックに移ります。)
CHECK命令については、どういった場面で利用するのか?
実際のコーディングはどのように行うのか?
この2点について、解説します。
このページでは、ループ処理についての知識が前提になります。
目次
1 構文ルール:CHECK命令
3 サンプルコード:CHECK命令
4 ループ処理の「強制終了」
1 構文ルール:CHECK命令
3 サンプルコード:CHECK命令
4 ループ処理の「強制終了」
CHECK (論理式).
(論理式)の部分は「SY-SUBRC = 0」のように比較演算子を用います。
構文ルールは簡単です。CHECKの後に、論理式を指定するだけです。
CHECK (論理式) AND (論理式).
のように、条件を複数指定することもできます。
構文自体は簡単ですので、CHECK命令の処理の内容をしっかり押さえましょう。
2 CHECK命令の処理
ループ処理の中に記載したCHECK命令では、
CHECK (論理式).
の中の(論理式)が「偽」の場合にループ処理を抜ける処理を行います。
つまり、CHECK命令は「〜であること」をチェックし、「〜でない」場合に処理をやめたい場合に用います。
3 サンプルコード:CHECK命令
サンプルコード:CHECK命令
以下のコードは、システム項目「SY-SUBRC」が0以外の場合にループ処理を終了します。
DO 100 TlMES.
A = A + 1.
CHECK SY-SUBRC = 0.
WRTE / SY-INDEX.
ENDOO.
CHECK命令が、ループ処理の中に書かれています。
したがって、SY-SUBRCが0以外となった場合には、ループ処理を抜けることになります。
注意点としては、CHECK命令は「〜であること」をチェックする命令ですので
「CHECK SY-SUBRC <> 0.」ではなく「CHECK SY-SUBRC = 0.」と記述します。
4 ループ処理の「強制終了」
CHECK命令の他にも、ループ処理を終了する処理を行う命令があります。
タグ: ABAP