ABAPのCHECK命令は、指定した条件に一致するかどうかをチェックするための命令であり、ある条件を満たさない場合にループ処理を抜ける命令です。
DATA num TYPE i VALUE 80. CHECK num <= 100. * 変数numが100以下であるためCHECK命令はTRUEを返す
このページでは、ABAP初心者向けにCHECK命令の使い方・構文ルール・注意点をサンプルコード付きでわかりやすく解説します。
ABAPerやSAPエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
ABAP:CHECK命令
CHECK (比較式).
構文ルールは簡単です。
CHECKの後に比較演算子を用いた論理式を指定するだけ。
以下のようにAND演算子やOR演算子を用いることも可能です。
* CHECK命令を使って、値が0より大きく、かつ100以下であるかどうかをチェック CHECK input_value > 0 AND input_value <= 100. * CHECK命令を使って、値が0以下、または200以上であるかどうかをチェック CHECK input_value <= 0 OR input_value >= 200.
CHECK命令のポイント
ループ処理の中に記載したCHECK命令では、比較式の結果が "false" の場合にループ処理を抜ける処理を行います。
参考 LOOP命令
つまり、CHECK命令は「~であること」をチェックし、「~でない」場合に処理をやめたいときに用います。
REPORT check_loop. TYPES: BEGIN OF ty_numbers, number TYPE i, END OF ty_numbers. DATA: numbers TYPE TABLE OF ty_numbers, wa_numbers TYPE ty_numbers. * 内部テーブルに数字を格納 wa_numbers-number = 1. APPEND wa_numbers TO numbers. wa_numbers-number = 2. APPEND wa_numbers TO numbers. wa_numbers-number = 3. APPEND wa_numbers TO numbers. * LOOP命令を使って、条件を満たす数字をチェック LOOP AT numbers INTO wa_numbers WHERE wa_numbers-number > 2. CHECK wa_numbers-number MOD 2 = 0. ENDLOOP.
参考 DATA命令 / TYPES命令 / APPEND命令
上記のコードでは、まず内部テーブルnumbersに数字を格納しています。そして、LOOP命令を使って、その内部テーブル内の数字を順に取り出しています。
その際、CHECK命令を使って、数字が偶数であることをチェックし、条件を満たす場合は何もせず、次の数字に進みます。条件を満たさない場合は、ループから抜けて終了します。
もちろん以下のようにLOOP命令を利用しないパターンで書くことも可能です。
DATA: input_value TYPE i. * ユーザーに値の入力を促す WRITE: / '値を入力してください'. READ INPUT input_value. * CHECK命令を使って、値が0より大きく、かつ100以下であるかどうかをチェック CHECK input_value > 0 AND input_value <= 100. * CHECK命令を使って、値が0以下、または200以上であるかどうかをチェック CHECK input_value <= 0 OR input_value >= 200. * チェック結果に応じて、メッセージを表示 IF sy-subrc = 0. WRITE: / '入力された値が条件を満たしています。'. ELSE. WRITE: / '入力された値が条件を満たしていません。'. ENDIF.
参考 sy-subrc
SAP/ABAPを1から勉強したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!