PR

【ABAP】CHECK命令:ループパスの条件付き終了を1分で解説

ABAP

ABAPのCHECK命令は、指定した条件に一致するかどうかをチェックするための命令であり、ある条件を満たさない場合にループ処理を抜ける命令です。

DATA num TYPE i VALUE 80.
CHECK num <= 100.

* 変数numが100以下であるためCHECK命令はTRUEを返す

このページでは、ABAP初心者向けにCHECK命令の使い方・構文ルール・注意点をサンプルコード付きでわかりやすく解説します。

このページで学べる内容
  • CHECK命令の使い方 / 構文ルール
  • 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をはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました