広告

posted by fanblog

2020年02月07日

【ABAP】CHECK命令—ループパスの条件付き終了


ABAPのCHECK命令について整理します。

CHECK命令は、一般的にはある条件を満たさない場合にループ処理を抜ける命令です。

ループの外でCHECK命令を行った場合には、現在の処理ブロックを終了します。
(例えば、サブルーチンであれば、そのサブルーチンの処理を終了し、次のブロックに移ります。)

CHECK命令については、どういった場面で利用するのか?
実際のコーディングはどのように行うのか?

この2点について、解説します。

このページでは、ループ処理についての知識が前提になります。

目次

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
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/9616783
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: