Sap-abap-case-control-statement

提供:Dev Guides
移動先:案内検索

SAP ABAP-ケースコントロールステートメント

CASE制御ステートメントは、2つ以上のフィールドを比較する必要がある場合に使用されます。

CASE制御ステートメントの構文は次のとおりです-

CASE <field>.

WHEN <abc>.
   <statement block>.

WHEN <def>.
   <tatement block>.

WHEN <pqr>.
   <statement block>.
......
......
......
WHEN <xyz>.
   <statement block>.

WHEN OTHERS.
   <statement block>.
ENDCASE.

次の規則は、CASEステートメントに適用されます-

  • <field>フィールドには論理式を使用できません。
  • CASEステートメントで使用されるフィールド文字列は、タイプC変数として扱われます。
  • <field>に表示されるフィールドの内容が、フィールド<abc>、<def>、<ghi>から<xyz>のいずれかに類似している場合、WHEN句に続くステートメントブロックが実行されます。
  • WHENステートメントで指定されたすべての条件を実行した後、プログラムはENDCASEステートメントの後の残りのステートメントの処理を続けます。
  • WHEN OTHERS句は、<field>の値がWHEN句の<abc>〜<xyz>フィールドで指定された値と一致しない場合にプログラムで実行されます。
  • WHEN OTHERS句が省略され、<field>の値がWHEN句の<abc>〜<xyz>フィールドで指定された値と一致しない場合、プログラムはENDCASEステートメントの後の残りのステートメントの処理を続行します。 。

流れ図

ケース制御ステートメント

Report YH_SEP_15.

Data: Title_1(10) TYPE C,
   Title_2(15) TYPE C.

Title_1 = 'ABAP'.
Title_2 = 'Programming'.

CASE Title_2.

WHEN 'ABAP'.
   Write 'This is not the title'.

WHEN 'Tutorials'.
   Write 'This is not the title'.

WHEN 'Limited'.
   Write 'This is not the title'.

WHEN 'Programming'.
   Write 'Yes, this is the title'.

WHEN OTHERS.
   Write 'Sorry, Mismatch'.

ENDCASE.

上記のコードは、次の出力を生成します-

Yes, this is the title.