ABAP

【ABAP】計算式―COMPUTE命令と算術式

このページでは、ABAPで行う計算処理を一通り整理して解説します。

このページで解説する内容をマスターすれば、ABAPの計算式は100%理解できます。

難しい内容はありません。

まず、計算を実行するCOMPUTE命令。そのうえで、COMPUTE命令を使わず算術式で計算を実行する方法を解説していきます。

COMPUTE命令

COMPUTE (答え) = (計算式).

COMPUTE命令は、(答え)に(計算式)の結果を代入する命令です。

と言いつつ、COMPUTE命令は省略可能です。

つまり、以下の2つのコードは全く同じ働きをします。

COMPUTE A = A + 1.

A = A + 1.

であれば、何故COMPUTE命令があるか?

「これが計算式である」ということを明示するためだ、という人もいますが答えは定かではありません。

ちなみに、

COMPUTE A = B.

という形で、Bの値をAに代入することも可能です。これは、MOVE命令と全く同じ処理になります。使いどころは・・・わかりません。

算術式(算術演算子)

算術式(算術演算子)というと、小難しく感じるかもしれませんが、”+” “-” “×” などの符号のことです。

ここからは、算術演算子と計算命令を整理して解説していきます。

加算・・・ADD / +

① COMPUTE命令(算術式)を用いる方法

COMPUTE A = A + 1.

② 計算命令を用いる方法

ADD 1 TO A.

上記①と②は全く同じ処理になります。ADDとは日本語で「加える」の意です。

減算・・・SUBTRACT / -

① COMPUTE命令(算術式)を用いる方法

COMPUTE A = A 1.

② 計算命令を用いる方法

SUBTRACT 1 FROM A.

上記①と②は全く同じ処理になります。SUBTRACTとは日本語で「引く」の意です。

乗算・・・MULTIPLY / *

① COMPUTE命令(算術式)を用いる方法

COMPUTE A = A * 2.

② 計算命令を用いる方法

MULTIPLY A BY 2.

ADD命令/SUBTRACT命令と比較すると、掛ける数字と掛けられる数字の順番が異なりますので注意しましょう。

MULTIPLYは日本語で「倍する」の意です。2で倍する、というイメージで理解しておきましょう。

除算・・・DIVIDE / “/”

① COMPUTE命令(算術式)を用いる方法

COMPUTE A = A / 2.

② 計算命令を用いる方法

DIVIDE A BY 2.

DIVIDEとは日本語で「割る・分ける」の意です。

特殊な算術式

これまでは基本的な四則演算について解説してきました。

ここからは、少し特殊な3つの袁術式について解説します。

DIV・・・割り算の答えの整数部分

例)A = A DIV 5.

算術式DIVは、割り算した結果の整数部分を返します。

上記、例であげた構文では、Aが12の場合を考えます。

12 DIV 5

とした場合、12÷5=2あまり2となります。

この場合、Aに格納されるのは、「2」ということになります。

少数を切り下げしたい場合に、”DIV 1″ とするような使い方が可能です。

MOD・・・割り算の答えの余り

例)A = A MOD 3.

算術式MODは、割り算の答えの余り部分を返します。

10 MOD 3

とした場合、10÷3=3 あまり1

となるので、Aに格納されるのは「1」となります。

**・・・累乗

例)3**2

算術式**は、累乗を表します。

例に挙げたのは、3の2乗を表します。すなわち、9と同意です。