DATA: lv_message TYPE string. " メッセージを格納する変数を宣言
PARAMETERS: p_number TYPE i. " ユーザー入力用のパラメータを宣言
* 入力された数値をチェック
IF p_number > 0.
lv_message = 'The number is positive.'. " 数値が正の場合のメッセージを設定
" 入力された数値が負の数かどうかをチェック
ELSEIF p_number < 0.
lv_message = 'The number is negative.'. " 数値が負の場合のメッセージを設定
ELSE.
lv_message = 'The number is zero.'. " 数値がゼロの場合のメッセージを設定
ENDIF.
WRITE: lv_message. " メッセージを表示
構文 CASE 変数. WHEN 値1. 変数が値1に一致する場合の処理. WHEN 値2. 変数が値2に一致する場合の処理. WHEN OTHERS. どの条件にも一致しない場合の処理. ENDCASE. ※”CASE”、”WHEN”、”WHEN OTHERS”の後にそれぞれ”.”(ピリオド)が必要です。 ※IF文と異なり式ではなく変数などのデータオブジェクトを指定します。“WHEN OTHERS”は省略することも可能です。
使用例
DATA: lv_message TYPE string. " メッセージを格納する変数を宣言
PARAMETERS: p_month TYPE i. " ユーザー入力用のパラメータを宣言
* 入力された月の日数を設定
CASE p_month.
WHEN 1 OR 3 OR 5 OR 7 OR 8 OR 10 OR 12.
lv_message = 'Days in the month: 31'. " 31日の月の場合
WHEN 4 OR 6 OR 9 OR 11.
lv_message = 'Days in the month: 30'. " 30日の月の場合
WHEN 2.
lv_message = 'Days in the month: 28'. " 2月の場合は通常は28日
WHEN OTHERS.
lv_message = 'Invalid month'. " 1から12以外の数値が入力された場合
ENDCASE.
WRITE: lv_message. " メッセージを表示
* 1つ目の例
IF lv_age >= 18. " 年齢が18歳以上であることをチェック
IF lv_height >= 170. " 身長が170cm以上であることをチェック
WRITE: / 'You are an adult and tall enough.'. " 成人で、かつ170cm以上の場合の処理
ENDIF.
ENDIF.
* 2つ目の例
CASE weather.
WHEN 'Sunny'. " 天気が晴れであることのチェック
CASE time.
WHEN 12. " 時間が正午であることのチェック
WRITE: / 'It is sunny at noon.'. " 天気が晴れで、時間が正午の場合の処理
ENDCASE.
ENDCASE.